buf是byte数组,不管buf多大,只要按照下面这么写就一定会把文件内容读完是么

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

泰兰德

2015-08-30 10:36

while((bytes=fis1.read(buf, 0, buf.length))!=-1)

写回答 关注

2回答

  • 忘性最大的人
    2015-08-30 13:53:05
    已采纳

    每次读取buf数组长度的数据,当读到文件末尾时,因为二进制流读取是读0或1,当读到-1时说明文件已经读到末尾,此时文件读取完毕。上面的循环就是在反复读取文件,直到读到文件末尾的-1,文件读完。

    发呆的阿呆

    bytes表示的是返回时个数,为何会出现-1呢?

    2015-10-24 11:33:52

    共 2 条回复 >

  • DLZer
    2015-10-12 20:19:40

    每判断一次while循环的条件,就会对文件进行一次读取(保存在缓冲数组中),直到最后,文件读取完毕,bytes==-1,循环结束……

    Darkch... 回复发呆的阿呆

    当指针到达文件末尾,再次调用read方法时返回的值是-1。注意是再次调用。

    2016-03-13 17:52:41

    共 3 条回复 >

文件传输基础——Java IO流

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

133754 学习 · 1030 问题

查看课程

相似问题