IO(输入/输出)
Java IO通过java.io包下的类和接口来实现,主要包括输入、输出两种IO流。
Java IO流使用了一种装饰器设计模式,它将IO流分为了底层节点流和上层处理流;其中节点流用于和底层的物理存储节点直接关联---不同的物理节点获取节点流的方式可能存在一定的差异,但程序可以把不同的物理节点流包装成统一的处理流,从而允许程序使用统一的输入、输出代码来读取不同的物理存储节点的资源。
Java 7 在java.nio及其子包下提供了一系列全新的API,对原有的IO进行升级,也称为 NIO2。
一. 流的分类
1. 输入流和输出流
输入流:主要有 InputStream 和 Reader 作为基类
输出流:主要由 OutputStream 和 Writer 作为基类。
2. 字节流和字符流:用法几乎完全一致,只是处理的数据单位不一样。
字节流:操作的数据单位是8位的字节; 主要是以 InputStream 和 OutputStream 作为基类;
字符流:操作的数据单位是16位的字符;主要是以 Reader 和 Writer 作为基类;
3. 节点流 和 处理流: 按照流的角色来划分。