阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_04 IO字节流_11_字节输入流一次读取多个字节



参数带字节数组的







把字节数组转换为字符串


文件里面有ABCDE


再来读取一次



再来读取一次。读取的结果是ED

再来读取,-1到时输出了。但是还是把ED读取出来了。

原理

第一步创建流对象


第二部创建数组


第三步读取数据
jav程序找JVM。JVM找OS,OS调用他的方法来读取数据


第一次读取会读到A。因为字节是两位的 所以还会读取到B

len是读取的有效字节个数

读完A和B,指针就指向C。再来第二次读取

第二次读取的是C和D

C和D就会把A和B覆盖

指针指向E,开始第三次读取。读取到E把C覆盖掉,。再读取后面没有了。所以打印出来的是E和D

读取后,指针会向后移一位到结束标记。

第四次读取,没有数据就会返回-1





方法的参数起到缓冲作用

使用循环优化代码





转换成字符串



字符串的后面有一堆的空格,因为读取的byte长度是1024的长度。就读取到了5个,。后面很多空间就浪费了


转换的时候,使用地个人构造方法来转换。有效的长度就是len





原文地址:https://www.cnblogs.com/wangjunwei/p/11268356.html