in.read(buf, 0, buf.length)这个方法可能为-1吗

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

qq_萍萍儿_0

2016-04-05 10:57

int read = in.read(buf, 0, buf.length);好疑惑,in.read(buf, 0, buf.length)这个方法不是一次性读完了嘛,怎么还有可能为-1呢??

写回答 关注

2回答

  • stt54321
    2016-04-20 15:10:30

    in.read(buf, 0, buf.length)这个方法不是一次性读完了嘛?

    首先对于你的这个理解是错误的,因为这个方法正确的理解是把文件内容的字节读入到字节数组buf中,但是文件内容的字节有可能大于字节数组buf的长度,那么文件内容就一次读不完。

    in.read(buf, 0, buf.length)这个方法可能为-1吗

    再来说说这个方法的返回值,这个方法返回的是实际读取到字节数组中的字节的数量。官方api明确指出,如果已经达到文件的末尾,返回值为-1.

    怒放的生命0... 回复qq_疾速小...

    对呀,就是为了让for循环不能运行,防止死循环

    2016-06-30 17:21:32

    共 2 条回复 >

  • 假面舞者1874
    2016-04-05 13:46:29

    就是相当于我们的文件结尾

文件传输基础——Java IO流

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

133754 学习 · 1030 问题

查看课程

相似问题