理解好Java-IO中的节点流和处理流是理解Java输入、输出的关键基础,因此,了解节点流和处理流相关的知识点尤为重要。
1.定义
(1)节点流:可以从或向一个特定的地方(节点)读写数据。如FileReader。
(2)处理流(用来包装节点流):是对一个已存在的流的连接和封装,通过所封装的流的功能调用实现数据读写。如BufferedReader.处理流的构造方法总是要带一个其他的流对象做参数。一个流对象经过其他流的多次包装,称为流的链接。
2.区别与联系
(1)节点流是低级流,直接跟数据源相接。
处理流(也叫包装流)把节点流包装了一层,属于修饰器设计模式,不会直接与数据源相连,通过处理流来包装节点流既可以消除不同节点流的实现差异,也可以提供更方便的方法来完成输入输出。
(2)处理流的功能主要体现在以下两个方面:
1.性能的提高:主要以增加缓冲的方式来提高输入输出的效率。
2.操作的便捷:处理流可能提供了一系列便捷的方法来一次输入输出大批量的内容,而不是输入/输出一个或多个水滴处理流可以嫁接在任何已存在的流的基础上。
3.节点流和处理流的分类(很关键的图),源自“疯狂Java讲义”