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

Posted wangjunwei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了阶段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
技术图片

技术图片


以上是关于阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_04 IO字节流_11_字节输入流一次读取多个字节的主要内容,如果未能解决你的问题,请参考以下文章

阶段1 语言基础+高级_1-3-Java语言高级_05-异常与多线程_第1节 异常_3_异常的产生过程解析

阶段1 语言基础+高级_1-3-Java语言高级_07-网络编程_第1节 网络通信概述_3_网络通信协议分类

阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_01 File类_3_绝对路径和相对路径

阶段1 语言基础+高级_1-3-Java语言高级_07 缓冲流_4_缓冲流的效率测试_复制文件

阶段1 语言基础+高级_1-3-Java语言高级_02-继承与多态_第4节 多态_15_多态的概述

阶段1 语言基础+高级_1-3-Java语言高级_07-网络编程_第1节 网络通信概述_2_网络通信协议