如何理解read(byte[] buf)?

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

月先生

2018-08-19 12:44

为什么说是读取数据填充到字节数组buf?我之前一直以为是每次从输入流中读取buf数组长读的字节

写回答 关注

2回答

  • 成功入行的秃头少女丶
    2018-08-26 00:06:57
    已采纳

    读取数组长度大小的内容并把这些内容赋值给数组。
    可以想象成搬砖的那个夹子,以夹子的长度从砖厂搬几块砖,你夹上去的时候这个夹子就夹满了,夹子的内容就是砖。夹子是数组,砖是内容。可能有点不太符合情况,我比喻不好hhhh…

    成功入行的秃... 回复月先生

    in.read([]byte)这个方法返回一个读取的内容的长度。比如数组长度为100,在文件里也读够了100个byte,这个方法就返回100这个值。

    2018-08-26 00:12:06

    共 2 条回复 >

  • 小小小小小柯丶
    2018-08-20 15:41:20

    因为一次读一个字节嘛,存入字节数组就是运行了很多次读一个字节的过程,依次填充到数组中去。你说的也没错啊,在数据足够大时,确实一开始是读buf长度的byte数据。最终可能刚好填满就没了,可能填到一半就没了,这个时候read()返回-1,最后再把buf的数据操作一遍(操作可能是copy到另一个文件里面去),跳出循环。个人拙见。

文件传输基础——Java IO流

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

133754 学习 · 1030 问题

查看课程

相似问题