一、字符流和装饰设计模式
为了提高读写效率,在IO流两个基类Writer和Reader的对应子类FileWriter和FileReader基础上,有两个装饰类BuffferedWriter BufferedReader,通过建立缓冲区的方式提高读写效率,在通常情况下,利用buffere缓冲流已经成为最常用的方法;因为在缓冲区里封装了数组,这样不用额外定义数组,增强速度效率;而装饰流是基于基础流操作实现的,本身对硬件的操作还是通过filewriter和filereader实现的,所以缓冲区要结合流才可以使用,可以理解为是在流的基础上对流的功能进行增强;
BufferedReader 是对FileReader 的功能增强,BufferedReader中提供了readline方法,该方法每次可以读取一行的数据存入数组中, 字符流中使用字符数组, 另外BufferReader也有一个装饰类,LineNumberReader,该类在BufferedReader功能的基础上增加了读取行号,设定行号的功能;
BuffereWriter是对FileWriter的功能增强,BuffferedWriter 类里面有一个Newline();方法是跨平台的换行符,在linux和windows平台都是换行,默认在linux下调用\n在windows下调用\r\n;BuffferedWriter 由于利用FileWriter的进行底层操作,所以还是需要刷新操作;
这其实是一种装饰设计模式。
装饰设计模式:,当想要对已有的对象进行功能在增强时,可以定义类,将已有对象传入,基于已有的功能,并提供加强功能