问答详情
源自:4-2 字节流之文件输入流FileInputStream-2

这是为什么?

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

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

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

提问者:yuhq 2016-08-25 12:35

个回答

  • Airly
    2016-09-01 22:06:18
    已采纳

    先说说你的这个问题, 为什么不是小于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);

  • 安然15
    2016-10-06 20:31:12

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

  • XhstormR
    2016-09-12 07:44:53

    还在吗?

  • 蚂蚁_0014
    2016-08-25 14:04:47

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