我的背景是 .net,对于 Java 还比较新。我正在为公司的 Java 团队做一些工作,架构师需要我实现一个接受 InputStream(java.io)对象的方法。为了完成该方法的目的,我需要将其转换为字节数组。有没有一种简单的方法来实现这个转换?
我的背景是 .net,对于 Java 还比较新。我正在为公司的 Java 团队做一些工作,架构师需要我实现一个接受 InputStream(java.io)对象的方法。为了完成该方法的目的,我需要将其转换为字节数组。有没有一种简单的方法来实现这个转换?
最简单的方法是创建一个新的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();
}