【发布时间】:2011-01-10 22:36:32
【问题描述】:
我的背景是 .net,我对 Java 还很陌生。我正在为我们公司的 java 团队做一些工作,架构师需要我实现一个采用 InputStream (java.io) 对象的方法。为了实现该方法的目的,我需要将其转换为字节数组。有没有简单的方法可以做到这一点?
【问题讨论】:
-
请注意,这可能会占用内存。
标签: java type-conversion inputstream
我的背景是 .net,我对 Java 还很陌生。我正在为我们公司的 java 团队做一些工作,架构师需要我实现一个采用 InputStream (java.io) 对象的方法。为了实现该方法的目的,我需要将其转换为字节数组。有没有简单的方法可以做到这一点?
【问题讨论】:
标签: java type-conversion inputstream
最简单的方法是创建一个新的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();
}
【讨论】:
一个简单的方法是使用org.apache.commons.io.IOUtils.toByteArray( inputStream ),参见apache commons io。
【讨论】: