java的IO流之字节输入流Inputstream
今天和大家一起学习一下IO流的字节输入流InputStream
我们的学习目标
字节输入流读取数据字节输入流一次读取多个字节接下来开始我们今天的学习。
一、字节输入流读取数据
InputStream字节输入流是一个抽象类,并且表示字节输入流的所有类的超类,所以我们需要使用到他的子类:FileInputStream
FileInputStream:文件字节输入流
作用:把硬盘文件中的数据,读取到内存中使用接下来我们写一个小栗子
我们提前准备好一个dat文件,里面的值是abc
注意:该方法每次只读取一个字节,读取到文件的末尾返回-1
我们发现以上读取文件是一个重复的过程,所以可以使用循环优化,因为不知道文件中有多少字节,使用while循环,while循环结束条件,读取到-1的时候结束简化写法如下:
二、字节输入流一次读取多个字节
API里面已经提供了字节输入流一次读取多个字节的方法:
int read(byte[] b) 从输入流中读取一定数量的字节,并将其存储在缓冲区数组 b 中。明确两件事情:
1.方法的参数byte[]的作用?
起到缓冲作用,存储每次读取到的多个字节
数组的长度一把定义为1024(1kb)或者1024的整数倍
2.方法的返回值int是什么?
每次读取的有效字节个数
String类的构造方法
String(byte[] bytes) :把字节数组转换为字符串 String(byte[] bytes, int offset, int length) 把字节数组的一部分转换为字符串 offset:数组的开始索引 length:转换的字节个数案例如下:
运行结果如下:
小知识点:
String(byte[] bytes, int offset, int length) 把字节数组的一部分转换为字符串 offset:数组的开始索引 length:转换的字节个数
好了今天就到这里,你学会了吗?