Java IO流体系中常用的流分类
2016-05-13 10:23
411 查看
Java输入/输出流体系中常用的流分类(表内容来自java疯狂讲义)
注:下表中带下划线的是抽象类,不能创建对象。粗体部分是节点流,其他就是常用的处理流。
——————————————————————————————————————————————————————————————————
总结:
1.Java IO是采用的是装饰模式,即采用处理流来包装节点流的方式,来达到代码通用性。
2.处理流和节点流的区分方法,节点流在新建时需要一个数据源(文件、网络)作为参数,而处理流需要一个节点流作为参数。
3.处理流的作用就是提高代码通用性,编写代码的便捷性,提高性能。
4.节点流都是对应抽象基类的实现类,它们都实现了抽象基类的基础读写方法。其中read()方法如果返回-1,代表已经读到数据源末尾。
注:下表中带下划线的是抽象类,不能创建对象。粗体部分是节点流,其他就是常用的处理流。
流分类 | 使用分类 | 字节输入流 | 字节输出流 | 字符输入流 | 字符输出流 |
抽象基类 | InputStream | OutputStream | Reader | Writer | |
节点流 | 访问文件 | FileInputStream | FileOutStream | FileReader | FileWriter |
访问数值 | ByteArrayInputStream | ByteArrayOutStream | CharArrayReader | CharArrayWriter | |
访问管道 | PipedInputStream | PipedOutStream | PipedReader | PipedWriter | |
访问字符串 | StringReader | StringWriter | |||
处理流 | 缓冲流 | BufferedInputStream | BufferedOutputStream | BufferedReader | BufferedWriter |
转换流 | InputStreamReader | OutputStreamWriter | |||
对象流 | ObjectInputStream | ObjectOutputStream | |||
抽象基类(过滤) | FilterInputStream | FilterOutputStream | FilterReader | FilterWriter | |
打印流 | PrintStream | PrintWriter | |||
推回输入流 | PushbackInputStream | PushbackReader | |||
特殊流 | DataInputStream | DataOutputStream |
总结:
1.Java IO是采用的是装饰模式,即采用处理流来包装节点流的方式,来达到代码通用性。
2.处理流和节点流的区分方法,节点流在新建时需要一个数据源(文件、网络)作为参数,而处理流需要一个节点流作为参数。
3.处理流的作用就是提高代码通用性,编写代码的便捷性,提高性能。
4.节点流都是对应抽象基类的实现类,它们都实现了抽象基类的基础读写方法。其中read()方法如果返回-1,代表已经读到数据源末尾。
相关文章推荐
- java 关于setContentPane()和getContentPane()的应用
- java 多线程
- 多线程09:《疯狂Java讲义》学习笔记——线程相关类
- java如何禁掉反射
- Java实现的一个简单聊天软件
- Java设计模式(一) 设计模式初探——简单工厂和工厂方法模式
- 多线程08:《疯狂Java讲义》学习笔记——线程池
- java基础知识及深层原理。
- Java基础整理(二)
- JDK 5.0 注解知识快速进阶
- 排序算法及其Java实现
- SpringMVC+Spring4+Mybatis3+Log4j集成
- Spring @Transactional
- mybatis+spring启动卡死解决方法
- spring+hibernate:在applicationCOntext.XML中配置C3P0参数说明
- Java基础-值传递与地址传递
- Java定时调度 Timer类和TimerTask类
- 关于spring 防sql注入,转义反转义,入参检查
- Spring-Mybatis分页--PageHelper
- 【JDK】:ConcurrentHashMap高并发机制——【转载】