码迷,mamicode.com
首页 > 其他好文 > 详细

转换流--InputStreamReader ,OutputStreamWriter

时间:2016-09-30 23:52:16      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:

BufferedReader 字符流,只能装饰字符流,不能装饰字节流。有个重要且好用的方法是readLine()整行读取字符。

但是InputStream是字节流,没有resdLine方法,那么字节流InputStream如何使用readLine方法呢???

如果能把字节流转换成字符流就可以使用BufferedReader装饰流。也就可以使用readLine方法。

 

把字节流转换成字符流,或者把字符流转为字节流    称为转换流: 

InputStreamReader(前缀是功能,后缀是体系):字节流通向字符流的桥梁他可以使用指定的charset读取字节流并将其解码为字符

OutputStreamWriter:字符流通向字节流的桥梁,他可以使用指定的charset将要写入流的字符编码成字节 

 

InputStream in=system.in;读取键盘输入的字节流,如果是读取一个中文,需要读两次才可以

InputStreamReader isr=new InputStreamReader(in);将字节流转换为字符流。如果是读一个中文,一次就可以读完

BufferedReader bufr=new BufferedReader(isr);

string line=null;

while((line=bufr.readLine())!=-1)

{

  if("over".equals(line))当读取到over就结束,否则转大写输出。

    break;

  system.out.println(line.toUpperCase())

}

 

OutputStreamWriter:

//读取键盘输入,转大写后输出到控制台

InputStream in=system.in;读取键盘输入的字节流,

InputStreamReader isr=new InputStreamReader(in);将字节流转换为字符流。

BufferedReader bufr=new BufferedReader(isr);

上面三句可以合为一句:

BufferedReader bufr=new BufferedReader(new InputStreamReader(system.in));

 

//输出到控制台

OutputStream out=system.out;

OutputStreamWriter osw=new OutputStreamWriter(out);

BufferedWriter bfw=new BufferedWriter(osw);

上面三句可以合为一句:

BufferedWriter bfw=new BufferedWriter(new OutputStreamWriter(system.ou));

 

 

string line=null;

while((line=bufr.readLine())!=-1)

{

  if("over".equals(line))当读取到over就结束,否则转大写输出。

    break;

  bfw.write(line.toUpperCase());

  bfw.newLine();

  bfw.flush();

}

 

 1 /**
 2      * @param args
 3      * @throws IOException 
 4      */
 5     public static void main(String[] args) throws IOException {
 6 
 7         
 8         /*
 9          * 1,需求:将键盘录入的数据写入到一个文件中。 
10          * 
11          * 2,需求:将一个文本文件内容显示在控制台上。
12          * 
13          * 3,需求:将一个文件文件中的内容复制到的另一个文件中。
14          */
15         
16         BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
17         
18         BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("b.txt")));
19         
20         
21         String line = null;
22         
23         while((line=bufr.readLine())!=null){
24             if("over".equals(line))
25                 break;
26             
27             bufw.write(line.toUpperCase());
28             bufw.newLine();
29             bufw.flush();
30         }
31         
32         
33     }

 

转换流--InputStreamReader ,OutputStreamWriter

标签:

原文地址:http://www.cnblogs.com/lxboy2009/p/5925142.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!