IO流的分类
- 根据流的流向分类:
-
- 输入流:将数据从
其他设备
上读取到内存
中的流。以 InputStream 、Reader 结尾。 - 输出流:将数据从
内存
中写出到其他设备
上的流。以 OutputStream 和 Writer 结尾。
- 输入流:将数据从
- 根据数据的类型分类:
-
- 字节流:以字节为单位,读写数据的流。以 InputStream 和 OutputStream 结尾。
- 字符流:以字符为单位,读写数据的流。以 Reader 和 Writer 结尾。
- 根据 IO 流的角色不同分类:
-
- 节点流:可以从或向一个特定的地方(节点)读取数据。如 FileReader 。
- 处理流:对一个已经存在的流进行连接和封装,通过锁封装的流的功能实现数据读写。如:BufferReader ,处理流的构造方法总是要带一个其它的流对象做参数。一个流对象经过多次其它流的多次包装,称为流的链接。
- 常用的节点流:
-
- 文件:FileInputStream 、FileOutputStream 、FileReader 、FileWriter 文件进行处理的节点流。
- 字符串:StringReader 、StringWriter 对字符串进行处理的节点流。
- 数组: ByteArrayInputStream 、ByteArrayOutputStream、CharArrayReader 、CharArrayWriter 对数组进行处理的节点流(对应的不再是文件,而是内存中的一个数组)。
- 管道:PipedInputStream 、PipedOutputStream 、PipedReader 、PipedWriter 对管道进行处理的节点流。
- 常用处理流:
-
- 缓冲流:BufferedInputStream 、BufferedOutputStream 、BufferedReader 、BufferedWriter ---增加缓冲功能,避免频繁读写硬盘。
- 转换流:InputStreamReader 、OutputStreamReader --- 实现字节流和字符流之间的转换。