将InputStream(Image)转换为ByteArrayInputStream

不确定我应该怎么做。 任何帮助,将不胜感激

从输入流读取并写入ByteArrayOutputStream ,然后调用其toByteArray()以获取字节数组。

在字节数组周围创建一个ByteArrayInputStream以从中读取。

这是一个快速测试:

 import java.io.*; public class Test { public static void main(String[] arg) throws Throwable { File f = new File(arg[0]); InputStream in = new FileInputStream(f); byte[] buff = new byte[8000]; int bytesRead = 0; ByteArrayOutputStream bao = new ByteArrayOutputStream(); while((bytesRead = in.read(buff)) != -1) { bao.write(buff, 0, bytesRead); } byte[] data = bao.toByteArray(); ByteArrayInputStream bin = new ByteArrayInputStream(data); System.out.println(bin.available()); } } 

或者首先将其转换为字节数组,然后转换为bytearrayinputstream。

 File f = new File(arg[0]); InputStream in = new FileInputStream(f); // convert the inpustream to a byte array byte[] buf = null; try { buf = new byte[in.available()]; while (in.read(buf) != -1) { } } catch (Exception e) { System.out.println("Got exception while is -> bytearr conversion: " + e); } // now convert it to a bytearrayinputstream ByteArrayInputStream bin = new ByteArrayInputStream(buf);