A复制数据规律通过几个明确来判断流对象的使用
(1)明确数据源和数据目的
数据源:(一般我们是从数据源获取数据的)
Reader
InputStream
数据目的:(一般我们是向目的写入数据)
Writer
OutputStream
(2)明确数据的内容是否是纯文本
数据源:
是:Reader -- FileReader
不是:InputStream -- FileInputStream
目的地:
是:Writer -- FileWriter
不是:OutputStream -- FileOutputStream
(3)明确具体设备
数据源:
键盘录入(System.in),文件(file),内存
System.in -- 转换流 -- InputStreamReader
目的地:
控制台(System.out),文件(file),内存
System.out -- 转换流 -- OutputStreamWriter
(4)明确是否需要提高效率
是:使用带Buffer的流对象
不是:不使用带Buffer的流对象
(5)通过流的操作分析如下四种操作
A:文件(a.txt) -- 文件(b.txt)
(1)明确数据源和数据目的
数据源:Reader
数据目的:Writer
(2)明确数据的内容是否是纯文本
数据源:FileReader
目的地:FileWriter
(3)明确具体设备
数据源:文件(file)
目的地:文件(file)
(4)明确是否需要提高效率
是:使用带Buffer的流对象
B读取键盘录入,将数据存储到一个文件中。
(1)明确数据源和数据目的
源:InputStream ,Reader
目的:OutputStream ,Writer
(2)明确数据的内容是否是纯文本
源:是纯文本吗?是 Reader
目的;是纯文本吗?是 Writer
(3)明确具体设备
源:键盘,System.in
目的:硬盘,FileWriter
InputStream in = System.in;
FileWriter fw = new FileWriter("a.txt");
(4)明确是否需要提高效率
是:使用带Buffer的流对象
C读取一个文本文件,将数据展现在控制台上。
(1)明确数据源和数据目的
源:InputStream ,Reader
目的:OutputStream ,Writer
(2)明确数据的内容是否是纯文本
源:是纯文本吗?是 Reader
目的;是纯文本吗?是 Writer
(3)明确具体设备
源:硬盘文件,FileReader。
目的:控制台:System.out。
FileReader fr = new FileReader("a.txt");
OutputStream out = System.out;
(4)明确是否需要提高效率
是:使用带Buffer的流对象
D键盘 -- 控制台
(1)明确数据源和数据目的
数据源:InputStream
数据目的:OutputStream
(2)明确数据的内容是否是纯文本
数据源:InputStream
目的地:OutputStream
(3)明确具体设备
数据源:键盘录入(System.in)
System.in -- 转换流 -- InputStreamReader
目的地:控制台(System.out)
System.out -- 转换流 -- OutputStreamWriter
(4)明确是否需要提高效率
是:使用带Buffer的流对象
注意:
键盘录入的时候,要自己定义结束标记。
而文件是不需要的,读到结尾会返回标记。
|