1.字符流缓冲区
(1)BufferdWriter
缓冲区的出现是为了提高流的操作效率而出现的。所以在创建缓冲区之前,必须要先有流对象。
该缓冲区中提供了一个跨平台的换行符。newLine();
bufw.close();//其实关闭缓冲区,就是在关闭缓冲区中的流对象。
(2)BufferedReader
字符读取流缓冲区:
该缓冲区提供了一个一次读一行的方法 readLine,方便于对文本数据的获取。当返回null时,表示读到文件末尾。
readLine方法返回的时候只返回回车符之前的数据内容。并不返回回车符。
2.装饰设计模式
(1)装饰设计模式:当想要对已有的对象进行功能增强是,可以定义类,将已有对象传入,基于已有的功能,并提供加强功能。那么自定义的该类称为装饰类。装饰类通常会通过构造方法接收被装饰的对象。并基于被装饰对象的功能,提供更强的功能。
(2)装饰和继承的区别:装饰模式比继承要灵活,避免了继承体系的臃肿。而且降低了类与类之间的关系。装饰类因为增强已有对象,具备的功能和已有的是相同的,只不过提供了更强的功能。所以装饰类和被装饰类通常是都属于一个体系中的。
一般模式:
练习1:明白了BufferedReader类中特有方法readLine的原理后,可以自定义一个类中包含一个功能和readLine一致的方法。来模拟一下BufferedReader。
图例代码如下:
练习2:模拟一个带行号LineNumberReader的缓冲区对象:
图例代码如下: