InputStream in = new FileInputStream(sourcePath);
byte[] b = new byte[1024];
while (in.read(b,0,1023)!=-1) {
System.out.println(new String(b));
};
和
while (in.read(b)!=-1) {
System.out.println(new String(b));
};
有什么区别?
后者定义了流读取时的缓冲区大小
带offset的功能更强大点
特别是计算百分比时候会很方便一些
都可以搞断点续传了
想像一下进度条
//还有一个read()无参数的,总共三个read方法
楼上说的对,后者定义了读取时缓冲区的大小,因为不是每次读取时缓冲区的数据都是最新的数据,比如,最后一次读取,很可能往缓冲区注入的数据不是byte【】的length,所以需要每次读取时确定往缓冲区中注入数据的长度。