选择流的规律
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);
标签:BufferedReader,文本,java,System,BufferedWriter,io,txt,new,用流
来源: https://www.cnblogs.com/WINDZLY/p/11802370.html