当需要通过各种方法运行字节时,java中应该如何处理大文件?
我之前的做法是这样的:
private byte[] inputStreamToByteArray(InputStream inputStream) {
BufferedInputStream bis = BufferedInputStream(inputStream);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buffer = new byte[8192];
int nRead;
while((nRead = bis.read(buffer)) != -1) {
baos.write(buffer, 0, nRead);
}
return baos.toByteArray();
}
因为我的字节数组变得太大,所以这样做我得到了一个 java 内存不足错误。
所以我尝试将流串在一起,但我不确定这是否是正确的方法,因为我对流的了解不够。
应该使用字节数组中的块还是通过传递输入流来处理大文件?