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

这是为什么?

int bytes=in.read(buf,0,buf.length);

for(int i=0;i<bytes;i++){

i小于bytes?为什么不是小于bytes的长度?

正在回答

4 回答

先说说你的这个问题, 为什么不是小于bytes的长度?

int bytes=in.read(buf,0,buf.length); 这里bytes返回的是int类型的整数而不是数组!没有.length这一说

你其实想说的是为什么不是小于buf[i]这个数组的长度吧...是因为老师设置了byte[] buf =new byte[20*1024],有可能读取出来的字节并没有把这个数组装满,所以这里的i只能小于读出来的有效字节长度,而这个读出来的有效字节长度就是int bytes=in.read(buf,0,buf.length);

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

yuhq 提问者

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

自己打印了一下System.out.print("byte的数值是:"+bytes);确实是有效字节的长度

0 回复 有任何疑惑可以回复我~

还在吗?

0 回复 有任何疑惑可以回复我~

1.看你定义的bytes 是什么类型的?int型的,它代表的就是长度2.其次此read()方法返回的就是所读取的字节的长度

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
文件传输基础——Java IO流
  • 参与学习       133623    人
  • 解答问题       1030    个

为您介绍IO流的使用,以及对象的序列化和反序列化的内容

进入课程

这是为什么?

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