课程
/后端开发
/Java
/文件传输基础——Java IO流
为什么说是读取数据填充到字节数组buf?我之前一直以为是每次从输入流中读取buf数组长读的字节
2018-08-19
源自:文件传输基础——Java IO流 4-1
正在回答
读取数组长度大小的内容并把这些内容赋值给数组。 可以想象成搬砖的那个夹子,以夹子的长度从砖厂搬几块砖,你夹上去的时候这个夹子就夹满了,夹子的内容就是砖。夹子是数组,砖是内容。可能有点不太符合情况,我比喻不好hhhh…
月先生 提问者
成功入行的秃头少女丶 回复 月先生 提问者
因为一次读一个字节嘛,存入字节数组就是运行了很多次读一个字节的过程,依次填充到数组中去。你说的也没错啊,在数据足够大时,确实一开始是读buf长度的byte数据。最终可能刚好填满就没了,可能填到一半就没了,这个时候read()返回-1,最后再把buf的数据操作一遍(操作可能是copy到另一个文件里面去),跳出循环。个人拙见。
举报
为您介绍IO流的使用,以及对象的序列化和反序列化的内容
1 回答read(byte[] b)和read(byte[] b, int off, int len)有什么区别
3 回答byte[] buf = new byte[(int)raf.length()];为什么创建了数组的内容?
3 回答调用read()方法之后,buf中会存储bytes的值,这是什么原理?
3 回答read(byte[] b,int off,int len)的返回值
3 回答关于InputStream里的read(byte[] b, int off, int len)