我的背景是.net,我对Java相当陌生。我正在为我们公司的Java团队做一些工作,架构师需要我实现一个采用InputStream(java.io)对象的方法。为了实现方法的目的,我需要将它转换为一个字节数组。是否有捷径可寻?在Java中,如何将InputStream转换为字节数组(byte [])?
17
A
回答
51
最简单的方法是创建一个新的ByteArrayOutputStream
,字节复制到,然后调用toByteArray
:
public static byte[] readFully(InputStream input) throws IOException
{
byte[] buffer = new byte[8192];
int bytesRead;
ByteArrayOutputStream output = new ByteArrayOutputStream();
while ((bytesRead = input.read(buffer)) != -1)
{
output.write(buffer, 0, bytesRead);
}
return output.toByteArray();
}
+0
确保在返回之前清空输出流。 – quikchange 2010-05-20 14:17:56
+5
@quikchange:当你使用ByteArrayOutputStream时,不需要它 - 缓冲到哪里? – 2010-05-20 14:41:46
9
一个简单的方法是使用org.apache.commons.io.IOUtils.toByteArray(inputStream)
,看到apache commons io。
相关问题
- 1. 将byte []数组转换为字节数
- 2. 如何将byte []转换为InputStream?
- 3. 如何将InputStream转换为字符串到Java中的字节数组?
- 4. 如何将ref字节转换为byte []?
- 5. Java - 将int转换为4字节的Byte数组?
- 6. 如何将Java字节数组转换为Scala字节数组?
- 7. 如何将位图转换为字节数组(byte [])?
- 8. 如何将byte []数组转换为字节类型变量?
- 9. BigInteger如何在Java中将字节数组转换为数字?
- 10. 如何将int转换为Byte数组?
- 11. 如何将字符串数组转换为字节数组? (java)
- 12. 我们可以在Java中将字节数组转换为InputStream吗?
- 13. 不能从字节转换为byte [] java
- 14. 转换字节数组(byte [])到图像在Java中
- 15. 如何在Java中将字节数组转换为hexString?
- 16. 将字节数组转换为.wav java
- 17. 将Scala中的Seq [Byte]转换为byte []/InputStream
- 18. 如何将字符串转换为字节数组中的Java
- 19. 如何从Java中的InputStream读取并转换为字节数组?
- 20. 将Java字节数组转换为Python字节数组
- 21. 将字符串转换为byte []和byte []转换为JAVA中的字符串
- 22. 在Java中,如何正确地将byte []转换为字符串为byte []?
- 23. 如何将字节数组转换为java中的BigInteger
- 24. 如何将.mp4视频转换为Java中的字节数组?
- 25. 如何将字节数组转换为java中的图像?
- 26. 如何将字节数组转换为Java中的AudioInputStream
- 27. 如何将java.awt.Image转换为java中的字节数组?
- 28. 如何将字节数组转换为Java中的Base64?
- 29. C#将object []转换为byte [],但如何将字节对象保存为byte?
- 30. Java:将InputStream转换为OutputStream
请注意,这可能是内存占用。 – BalusC 2010-01-29 17:18:27