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

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

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

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

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

构造方法如上,有2种重载,第一个参数是传入输出流,我们可以使用FileOutputStream,第二个为可选参数,指定缓冲区数组大小
使用步骤,1创建FileOutputStream对象,2构造BufferedOutputStream对象,3使用write将其写入缓冲区,4flush刷新到文件中(可以省略),5close释放资源(前步省略因为此步也刷新文件)

代码演示如上
字节缓冲输入流BufferedInputStream
继承自InputStream,所以其成员方法也继承自父类

构造方法也是2种,第一个参数是输入流对象,一般使用FileInputStream,第二个参数为size即指定byte数组大小
使用步骤,创建FileInputStream对象,构造BufferedInputStream,read读取,close刷新释放资源

代码如上
字符缓冲输出流BufferedWriter

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

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

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

代码如上
字符缓冲输入流BufferedReader

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

成员方法如上,我们比较关心的是readLine()一次读一行,返回string内容,到结尾返回null(每行内容不包括结尾换行符)
publicBufferedReader(Readerin)
publicBufferedReader(Readerin, int sz)
构造方法如上,还是根据是否有指定缓冲数组长度设置二参数,Reader一般使用FileReader实例

网友评论