黑马程序员技术交流社区
标题: 字符流的缓冲区的学习笔记。 [打印本页]
作者: wyw 时间: 2015-4-18 23:51
标题: 字符流的缓冲区的学习笔记。
|----缓冲区的出现提高了对数据的读写效率。
因此在创建缓冲区之前,必须要先有流对象。
缓冲区中提供了一个跨平台的方法,newLine();换行。
|----对应类
|----BufferedWriter
|----BufferedReader
字符读取流缓冲区提供了一个一次读一行的方法readLine,方便于对文本数据的获取
当返回null时,表示读到文件末尾。
装饰设计模式:
当想要对已有的对象进行功能增强时,可以定义类,将已有对象传入,基于已有对象的功能,并提供加强功能。那么自定义的类就称为装饰类。如:BufferedReader中的readLine。
装饰类通常会通过构造方法接收被装饰的对象,并基于被装饰对象的功能,提供更强的功能。
MyReader:专门用于读取数据的类
|----MyTextReader
|----MyBufferedTextReader
|----MyMediaReader
|----MyBufferedMediaReader
|----MyDataReader
|----MyBufferedDataReader
每个子类都需要重新定义Buffered类,这样就需要对这些缓冲技术进行优化。
class MyBufferedReader
{
MyBufferedReader(MyTextReader text)
{}
MyBufferedReader(MyMediaReader media)
{}
}
又发现这个类的扩展性也很不好,那么我们就找到它参数的共同类型,通过多态的形式,能够提高扩展性。
class MyBufferedReader extends MyReader
{
private MyReader r;
MyBufferedReader(MyReader r)
{}
}
这就是装饰模式。装饰模式比继承更灵活,避免了继承体系的臃肿,降低了类与类之间的关系。装饰类因为增强已有对象的功能,具备的功能和已有的是相同的,只不过是提供了更强大的功能,所以装饰类和被装饰类通常是属于一个体系中的。
通过优化后的体系:
MyReader:
|----MyTextReader
|----MyMediaReader
|----MyDataReader
|----MyBufferedReader
字符流:
|----FileReader
|----FileWriter
|----BufferedReader
|----BufferedWriter
字节流:
InputStream outputStream
作者: wyw 时间: 2015-4-19 09:05
实质性内容?什么意思?我这笔记只记了结构框架,大神有什么好的建议?
作者: 一个好人 时间: 2015-4-19 10:08
学习了,,,,,
作者: wyw 时间: 2015-4-19 10:27
哦哦,你说练习吖,那个在eclipse里面呢。每个笔记都有对应的例子的。
作者: zhuchangbao 时间: 2015-4-19 10:30
挺好的,加油。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |