2 cai493199904 cai493199904 于 2014.02.14 13:50 提问

java流中read(byte[] b)和read(byte[] b,int off,int len)有什么区别

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));
};
有什么区别?

3个回答

Foible
Foible   2014.02.14 16:54

后者定义了流读取时的缓冲区大小

franzhong
franzhong   2014.02.16 17:59

带offset的功能更强大点
特别是计算百分比时候会很方便一些
都可以搞断点续传了
想像一下进度条

//还有一个read()无参数的,总共三个read方法

u013540525
u013540525   2014.10.13 11:11

楼上说的对,后者定义了读取时缓冲区的大小,因为不是每次读取时缓冲区的数据都是最新的数据,比如,最后一次读取,很可能往缓冲区注入的数据不是byte【】的length,所以需要每次读取时确定往缓冲区中注入数据的长度。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!