while((bytes=in.read(buf,0,buf.length))!=-1)这个条件里面bytes的值不是固定的吗?

来源:4-2 字节流之文件输入流FileInputStream-2

慕粉4241372

2017-03-07 09:34

int bytes=0;
int j=1;
while((bytes=in.read(buf,0,buf.length))!=-1){
	for(int i=0;i<bytes;i++){
		System.out.print(Integer.toHexString(buf[i]&0xff)+" ");
		if(j++%10==0){
			System.out.println();
		}
	}
}

这个bytes不是in的字节长度嘛,那是一个固定值呀,那这个条件不久相当于bytes!=-1 吗?那这个条件不就是true?

我把bytes=in.read(buf,0,buf.length)写在上面
然后换成while(true)为何是死循环?

写回答 关注

1回答

  • WhiteJj
    2017-03-07 10:29:21
    已采纳


    这本身就是一个用于判断是否读取到文件的末尾,如果读取到文件末尾,bytes的值就为-1了呀,while循环就会结束了呀


    慕粉4241...

    非常感谢!

    2017-03-07 10:46:37

    共 1 条回复 >

文件传输基础——Java IO流

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

133754 学习 · 1030 问题

查看课程

相似问题