为了账号安全,请及时绑定邮箱和手机立即绑定

int b = in.read(); 与int bytes = in.read(buf,0,buf.length);有什么差

int b = in.read();  这句代码执行后,b 表示读取到的字节。

int bytes  = in.read(buf,0,buf.length);执行后,bytes表示的是读到的字节个数。

是方法就是这样定义的吗?

正在回答

1 回答

这两个的差别,实际上是read()方法两种重载方式的差别。

in.read()表示单字节读取,相当于一滴一滴水(字节)地去洒

in.read(byte[] buf ,int start ,int size )表示字节先读取到buf缓冲区,start表示缓冲区的起始位置,size表示存入缓冲区的大小。这种方式相当于先把一滴一滴水(字节)放到一个桶(buf)里,当然这个桶肯定有大小(size),当桶里的水达到一定程度(缓冲区的极限)时,再将整个桶里的水洒出去。

授人以鱼不如授人以渔

详细课程可以去看看 慕课网Java专题的 【文件传输基础 Java I/O 流】

http://www.imooc.com/learn/123

4 回复 有任何疑惑可以回复我~
#1

K_Muxs 提问者

非常感谢!
2016-10-04 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

int b = in.read(); 与int bytes = in.read(buf,0,buf.length);有什么差

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信