yuhq
2016-08-25 12:35
int bytes=in.read(buf,0,buf.length);
for(int i=0;i<bytes;i++){
i小于bytes?为什么不是小于bytes的长度?
先说说你的这个问题, 为什么不是小于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);
自己打印了一下System.out.print("byte的数值是:"+bytes);确实是有效字节的长度
还在吗?
1.看你定义的bytes 是什么类型的?int型的,它代表的就是长度2.其次此read()方法返回的就是所读取的字节的长度
文件传输基础——Java IO流
133754 学习 · 1030 问题
相似问题