java中输入流去读取文件时为什么要创建一个缓存数组

2025-02-27 04:56:10
推荐回答(3个)
回答1:

是这样在使用I/O流的时候,可以分为三种情况:
1、每次读取1个字节。
2、每次读取定义的数组长度字节。
3、每次读取一行。
刚开始学I/O流的时候会先让你看,1有多麻烦,还是用2比较简单。之后会涉猎到3,因为3才是最常用的,但是需要进行转换。

回答2:

存放读来的数据?

回答3:

IO流自定义字节流的缓冲区:

思路:BufferedInputStream类中read()方法的工作原理
1)先一个一个从字节流中读取字节,读取一定量(自定义)之后,存储在一个字节数组(缓冲区)(FileInputStream.read(byte[] b)),并获得存储数量(read方法的返回值)。
2)一个一个字节返回,返回一个,存储数量减1,然后指针往后移一位,准备取下一个。
3)如果存储数量为0 ,代表当前数组中所有数据已经全部取完,此时再来一次读取(read(byte[] b)),再获得此次存储数量。
4)如果存储数量(即read方法返回-1),代表读到文件末尾,返回-1。
因此,需要用到以下几个变量:
读取的字节数量,指向数组中准备取哪一个的指针,将要返回的字节变量。