在io流中,字节流,字符流,输入流 ,输出流,条目众多,如何在这么多的类中,找到我们需要的对象,在这里我做了总结 :
首先 要确定几个概念
输入:将外设的数据读取到内存中。
输出:将内存的数写入到外设中。
流按操作数据又分为 字节流 和 字符流,字节流读取文字字节数据后 ,不直接操作而是先查看指定的编码表,获取相对性的文字,再对这个文字进行操作,简单说字节流+编码表。
字节流的抽象基类:InputStream,OutputStream.
字符流的抽象基类 : Reader , Writer.
1 明确操作中存在的数据源和数据的目的
存在数据源 : InputStream Reader
数据的目的 : OutputStream Writer
2 明确数据是否是纯文本数据
数据源 是纯本文:Reader
否:InputStream
数据目的 是纯文本 :Writer
否:OutputStream
3 明确具体的设备
数据源的设备:
硬盘:File
键盘: System.in
内存:数组
网络:Socket流
数据目的的设备:
硬盘:File
键盘: System.out
内存:数组
网络:Socket流
4 是否需要缓冲区
1 需要高效 加上 buffer
例如: 将一个文本文件数据显示在控制台上。
1 明确操作中存在的数据源和数据的目的
存在数据源 : InputStream Reader
数据的目的 : OutputStream Writer
2 是否是纯文本
是, 源:Reader 目的 Writer
3 明确具体的设备
源 :硬盘 :File 目的:System.out
FileReader fr=new FileReader("a.txt");
OutputStream out = new OutputStreamWriter( System.out )
加上缓冲区
BufferedReader bufr=new BufferedReader (fr);
BufferedWriter bufw=new BufferedWriter (out);
|
|