选择用流的小规律(java)基本的io流

选择流的规律

1 首先我们要明确源和目的
 	源: InputStream Reader
  	目的::OutputStream Write
2 我们要判断源和目的是不是纯文本
  源是纯文本 :Reader
否则 :InputStream
  源不是纯文本  Writer
否则:OutputStream
3 明确具体设备
  源设备
  键盘 System.in
  网络 Socket
  内存 数组
  硬盘 File
  目的设备
  控制台 System.out
硬盘 File
内存数组
网络 Socket

4 是否需要额外功能
 需要高效(缓冲区):Buffered

下面我们举出四个例子来说明

一 复制一个文本文件

源:文本 Reader
目的 文本 Write
源是硬盘
目的也是硬盘
FileReader fr = new FileReder(“a.txt”);
FileWriter fw = new FileWriter(“Copy_a.txt”);

是否需要高效(加入缓冲区)
BufferedReader bfr = new BufferedReader (new FileReder(“a.txt”));
BufferedWriter bfr = new BufferedWriter (new FileWriter(“Copy_a.txt”));

二 读取键盘录入信息并且写到一个文件里面

源 文本 Reader
目的 文本 Writer
源是在键盘
目的是硬盘

但是考虑到是文本我们九不需要在用字节读取
直接
//字节流  InputStream is = System.in;
我们对其进行字符流转换
InputStreamReader isr = new InputStreamReader(is);
我们写到文本里面
FileWriter fw = new FileWriter(“b.txt”);

当我们需要高效的时候我们直接这样写
BufferedReader bfr = new BufferedReader(new InputStreamReader (System.in));
BufferedWriter bfr = new BufferedWriter (new FileWriter(“Copy_a.txt”));


三  将一个文本文件里面的数据显示到控制台上

源 文本 Reader
目的 文本 Writer
源是在硬盘
目的实在控制台
FileReader fr = new FileReader(“a.txt”);
OutputStream os = System.out;

因为读取的是文本文件
所以我们为了更加的方便  我们将它转换成为字符流
OutputStreamWriter osr = new OutputStreamWriter(new OutputStream(System.out));

我们还要考虑是否需要高效
BufferedReader bfr = new BufferedReader(new FileReader(“a.txt”));
BufferedWriter
Bfw = new BufferedWriter(newOutputStreamWriter(newOutputStream(System.out)));


四 读入键盘内容然后写到控制台上

源 文本 Reader
目的 文本 Writer
源是在键盘
目的实在控制台
InputStream is = System.in;
OutputStream os = System.out

因为键盘上输入的是文本(为了方便起见我们要转换成为字符流)(可以不转)
InputStreamReader isr = new InputStreamReader(is);
OutputStreamWriter osr = new OutputStreamWriter(osr);

为了高效
我们可以加上Buffered
BufferedReader bfr = new BufferedReader(isr);
BufferedWriter bfw = new BufferedWriter(osr);
 

  

猜你喜欢

转载自www.cnblogs.com/WINDZLY/p/11802370.html