//减少ByteArrayOutputStream write方法的锁结构,
//和增加byte数组空间的利用率,可以适用于数据量较大的传输
public static byte[] readByte(InputStream in) throws IOException {
int off = 0;
int length = 1024;
byte[] data = new byte[length];
while ((length = in.read(data, off, length)) > 0) {
off = off + length;
if (off < data.length){
break;
}else {
length = in.available();
data = Arrays.copyOf(data, off + (length = (length > 0 ? length + 1 : data.length << 1)));
}
}
if (off == 0) return null;
return Arrays.copyOf(data, off);
}
优化项目中获取Http请求byte数据的ByteArrayOutputStream write方法。
希望有什么缺陷或者更加好的方式可以评论区提出,谢谢。