一、前言
處理二進(jìn)制文件流是鬼,需將流轉(zhuǎn)為字節(jié)數(shù)組肤舞,使用Arrays.copyOf()方法轉(zhuǎn)換的弊端在于,需指定字節(jié)數(shù)字大小均蜜,容易造成內(nèi)存泄漏李剖。
二、直接拷貝
BufferedInputStream bis = new BufferedInputStream(inputStream);
byte[] fileByte = new byte[size];
int readLen = bis.read(fileByte);
data = Arrays.copyOf(fileByte, readLen);
bis.close();
三囤耳、使用緩存
// 利用緩沖區(qū)篙顺,分段讀取,防止內(nèi)存泄露
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len;
while ((len = inputStream.read(buffer)) > -1) {
baos.write(buffer, 0, len);
}
baos.flush();
inputStream.close();
byte[] data = baos.toByteArray();