一、流的继承关系
二、流的分类
1 按操作数据分:字节流、字符流
|-- 字节流可以处理任何类型数据,字符流只能处理字符相关数据类型
2 按流向分:输入流、输出流
3 按角色分:节点流(低级流)、处理流(高级流)/过滤流
|-- 例如字节流FileOutputStream,FileInputStream,低级流,程序直接与数据源相连
|-- 例如缓冲区流BufferedInputStream,高级流,程序不会直接与数据源相连
三、流的使用
1 明确源和目的(汇)
|-- 源:InputStream Reader
|-- 目的:OutputStream Writer
2 明确数据是否是纯文本数据。
|-- 源:是纯文本:Reader,否:InputStream
|--目的:是纯文本:Writer,否:OutputStream
3 明确具体的设备。
|-- 源设备:
·硬盘:File
·键盘:System.in
·内存:数组
·网络:Socket流
|-- 目的设备:
·硬盘:File
·控制台:System.out
·内存:数组
·网络:Socket流
4 是否需要其他额外功能。
|-- 1是否需要高效(缓冲区):是,就加上buffer.
|-- 2转换,InputStreamReader,OutputStreamWriter
四、常用编码表:建立字符和字节的映射关系
1 ASCII:借助一个字节的7个bite位存储数据
2 GBK:借助2个字节存储数据,主要用于解决中文问题
3 utf-8:对Unicode(2字节)编码格式的优化,用一个字节存储
五、.常用编码解码类:
1 charSet类
2 URLEncode,URLDecode,网页相关编码解码类