Java IO【18】 流规律的应用举例

来源:互联网 发布:js写插件 编辑:程序博客网 时间:2024/06/05 10:50

        昨天在【17】中学习了流规律,现在利用总结的那4条流规律来写一下代码,也算是对更早的代码的总结。


需求1:复制一个文本
·1.明确源和目的
 源:InputStream Reader
 目的:OutPutStream Writer
·2.是否是纯文本?
 是!源:Reader
  目的:Writer
·3.明确具体设备
 源:硬盘,File
 目的:硬盘,File
 FileReader fr = new FileReader("a.txt");
 FileWriter fw = new FileWirter("b.txt");
·4.需要额外功能吗?
 需要,高效
 BufferedReader bufr = new BufferedReader(new FileReader("a.txt"));
 BufferedWriter bufw = new BufferedWriter(new FileWriter("b.txt"));
------------------------------------------------------------------------------------------------
需求2:读取键盘录入信息,并写入到一个文件中
·1.明确源和目的
 源:InputStream Reader
 目的:OutPutStream Writer
·2.是否是纯文本?
 是!源:Reader
  目的:Writer 
·3.明确具体设备
 源:控制台,System.in
 目的:硬盘,File
 
 InputStream in = System.in;
 FileWriter fw = new FileWirter("in.txt");
 这样做也可以完成,但是麻烦,将读取的字节数据转换成字符串。再由字符流操作。
·4.需要额外功能不?
 需要,转换,将字节流转成字符流。因为明确的源是Reader,这样操作文本数据最便捷,
       所以要将已有的字节流--->字符流。 
 InputStreamReader inr = new InputStreamReader(System.in);
 FileWriter fw = new FileWirter("in.txt");
 
 还需要功能吗?
 需要,想高效
 BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
 BufferedWriter bufw = new BufferedWriter(new FileWriter("in.txt"));
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
需求3:将一个文本文件显示在控制台上
·1.明确源和目的
 源:InputStream Reader
 目的:OutPutStream Writer
·2.是否是纯文本?
 是!源:Reader
  目的:Writer 
·3.明确具体设备
 源:硬盘,File
 目的:控制台,System.out
 FileReader fr = new FileReader("a.txt");
 OutputStream out = System.out;  //PrintStream
·4.需要额外功能吗:
 需要,转换,需要字符流的输出方便文本的阅读
 FileReader fr = new FileReader("a.txt");
 OutputStreamWriter outr = new OutputStreamWriter(System.out);
 
 还需要功能吗:
 需要 高效(缓冲区----装饰)
 BufferedReader  bufr = new BufferedReader(new FileReader("a.txt"));
 BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(System.out));
 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
需求4:读取键盘录入数据,显示在控制台上。
·1.明确源和目的
 源:InputStream Reader
 目的:OutPutStream Writer
·2.是否是纯文本?
 是!源:Reader
  目的:Writer 
·3.明确具体设备
 源:硬盘,System.in
 目的:控制台,System.out
 InputStream in = System.in;     //读中文的时候特别不方便
 OutputStream out = System.out;  //PrintStream
4.需要额外功能吗:
 需要,转换,需要字符流的输入输出方便文本的阅读 
 InputStreamReader inr = new InputStreamReader(System.in);
 OutputStreamWriter outr = new OutputStreamWriter(System.out);
 
 还需要,缓冲
 BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
 BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(System.out));
 

    好了,其实真正的程序员在使用这个的时候是从第3个开始思考的,明确目的设备、是够需要额外功能。

0 0
原创粉丝点击