学习JAVA IO之前必须要先学习装饰模式
BufferedReader in=new BufferedReader(new StringReader(BufferedInputFile.read(file)));
上面是Java中创建一个文件对象的语句,Java在IO库的设计中使用了装饰模式,每一个嵌套在内的类都提供了自己的功能。所以如果你不懂装饰模式,理解这些过于困难。
可以参考下面这个链接,简单理解装饰模式
还有这篇对IO总结的很好的博文,可以先看一遍有个大致的理解再去看书Java IO总结
创建对象的要点
来自上面的设计模式博文理解了装饰模式,再掌握Java IO 中那些类属于继承类,哪些类属于装饰器类,就知晓如何创建文件对象了。
输入输出字节流
输入输出字节流输入字节流
继承类是基本类,装饰类是用来给基本类增加功能的,比如果篮是基本类,水果是装饰类
Basket basket=new Orange(new Apple(new Basket()));
整个流程可以表示为
- 创建一个果篮
- 果篮中放入苹果
- 在2中放入橘子
通过一点一点的装饰为果篮添加功能
继承类有:
- ByteArrayInputArray
- StringBufferInputStream
- FileInputStream
装饰类有:
- ObjectInputStream
- FilterInputStream及其子类
输出字节流
继承类有:
- ByteArrayOutputStream
- FileOutputStream
装饰类有:
- ObjectOutputStream
- FilterOutputStream及其子类
输入输出字符流
输入输出字符流输入字符流
继承类:
- CharReader
- StringReader
装饰类:
- BufferedReader
- FilterReader
InputStreamReader是连接字符流和字节流的桥梁,FileReader用来将FileInputStream转变为Reader。
输出字符流
继承类:
- CharArrayWriter
- StringWriter
装饰类:
- Buffered
OutputStreamWriter是连接OutputStream到Writer的桥梁。
等理解加深一点再来修改
网友评论