流的操作规律
(1)明确要操作的数据是数据源还是数据目的(要读还是要写)
源:InputStream Reader
目的:OutputStream Writer
(2)明确要操作的设备上的数据是字节还是文本
源:
字节:InputStream
文本:Reader
目的:
字节:OutputStream
文本:Writer
(3)明确数据所在的具体设备
源设备:
硬盘:文件 File开头
内存:数组,字符串
键盘:System.in
网络:Socket
目的设备:
硬盘:文件 File开头
内存:数组,字符串
屏幕:System.out
网络:Socket
(4)明确是否需要额外功能?
需要转换——转换流 InputStreamReader OutputStreamWriter
需要高效——缓冲流Bufferedxxx
多个源——序列流 SequenceInputStream
对象序列化——ObjectInputStream,ObjectOutputStream
保证数据的输出形式——打印流PrintStream Printwriter
操作基本数据,保证字节原样性——DataOutputStream,DataInputStream