1、使用Apache Common中IOUtils.toByteArray()转换
byte[] bytes = IOUtils.toByteArray(inputStream);
内部会创建一个ByteArrayOutputStream并将字节复制到输出,然后调用toByteArray()。它通过复制4KiB块中的字节来处理大型文件。
相关文档: Commons IO
2、使用ByteArrayOutputStream的toByteArray()转换
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
int nRead;
byte[] data = new byte[16384];
while ((nRead = inputStream.read(data, 0, data.length)) != -1) {
buffer.write(data, 0, nRead);
}
return buffer.toByteArray();
3、使用readAllBytes()读取转换
相关文档:
InputStream.html#readAllBytes--
byte[] array = inputStream.readAllBytes();
4、使用DataInputStream的readFully读取转换
byte[] bytes = new byte[(int) file.length()];
DataInputStream dis = new DataInputStream(inputStream);
dis.readFully(bytes);
5、使用Google Guava中ByteStreams.toByteArray()转换
byte[] bytes = ByteStreams.toByteArray(inputStream);
文档: google guava
相关文档: