字符流Reader的结构
2014-08-17 14:20:48 3 举报
JAVA 字符流IO的简单结构
作者其他创作
大纲/内容
Reader类(abstract)
FileReader
Closeable接口(定义了close功能)
CharArrayReader(从一个char[]数组里读)
BufferedReader(装饰器 提供缓存支持 真正的操作 还是包含的Reader对象来做的)
可包含于
FileReader继承自InputStreamReader 所以read方法 close方法 都是来自InputStreamReader的实际上FileReader 里面只有构造方法 其他方法都是继承自父类而且构造方法传入的是一个File对象 实际上是为了构建一个FileInputStream 然后装饰成一个streamDecorator 给父类的read close方法用
InputStreamReader
Readable接口(定义了read功能)
PipedReader(线程管道通信)
实现
InputStreamReader继承了Reader类 所以具备了Reader的read 和 close功能 但实际上也不是自己实现的,因为原本就没有什么字符流 所谓字符流 不过是字节流的一种封装,方便用户使用而已所以InputStreamReader 内部包含一个streamDecorator 就是字节流的一个装饰器 InputStreamReader在实例化的时候需要传入一个字节流 然后创建好这个装饰器对象 接下来 各种read方法和close方法 都是靠这个字节流装饰器来实现的
StringReader(字符串reader)
继承
Reader抽象类 实现了上述的两个接口 所以具备了基本的read方法 和 close方法 但是本质上这个抽象类的read方法和close方法是没有实现的 是等着子类去实现的由此可见 jdk源码的设计 其实也是遵循按接口设计的规范的 先用接口定义好基本的功能 然后去实现这个接口
0 条评论
下一页