37缓冲流

2020-04-07  本文已影响0人  ca8519be679b

之前介绍了一些基本的IO流,我们要开始介绍更高级的缓冲流,对之前的IO流的一种强化

1

今天要学的是字节缓冲流的输入,BufferedInputStream,输出,BufferedOutputStream

字符缓冲流输入BufferedReader,BufferedWriter

2

视频举了个例子,字节或者字符流read是单个字节字符读取,效率就比较低,而缓冲流本质是传入数组,可以读取全部内容的字节数组或字符数组,实现读取(但是我记得好像也可以使用数组给字符字节流read,,难道不是缓冲么,当然可能缓冲流是内置的,而非缓冲流是手动创建)

字节缓冲输出流BufferedOutputStream

3

可以看到其字段里有buf属性字段,就是内置的byte字节数组

4

继承关系我们可以看到其继承OutputStream字节输出流,那其方法我们都可以使用

5

构造方法如上,有2种重载,第一个参数是传入输出流,我们可以使用FileOutputStream,第二个为可选参数,指定缓冲区数组大小

使用步骤,1创建FileOutputStream对象,2构造BufferedOutputStream对象,3使用write将其写入缓冲区,4flush刷新到文件中(可以省略),5close释放资源(前步省略因为此步也刷新文件)

6

代码演示如上

字节缓冲输入流BufferedInputStream

继承自InputStream,所以其成员方法也继承自父类

7

构造方法也是2种,第一个参数是输入流对象,一般使用FileInputStream,第二个参数为size即指定byte数组大小

使用步骤,创建FileInputStream对象,构造BufferedInputStream,read读取,close刷新释放资源

8

代码如上

字符缓冲输出流BufferedWriter

9

因为其继承自字符输出流,所以其父类Writer方法都可以使用

10

构造方法,我们可以传入FileWriter实例,然后二参数可以指定

11

成员方法里多了个newLine,会根据操作系统不同写入不同的换行符

12

代码如上

字符缓冲输入流BufferedReader

13

字符缓冲输入流,继承Reader字符缓冲输入流

14

成员方法如上,我们比较关心的是readLine()一次读一行,返回string内容,到结尾返回null(每行内容不包括结尾换行符)

publicBufferedReader(Readerin)

publicBufferedReader(Readerin, int sz)

构造方法如上,还是根据是否有指定缓冲数组长度设置二参数,Reader一般使用FileReader实例

15
上一篇 下一篇

猜你喜欢

热点阅读