黑马程序员技术交流社区

标题: 如何理解OutputStreamWriter 是字符流通向字节流的桥梁 [打印本页]

作者: Ysfox    时间: 2013-7-4 15:09
标题: 如何理解OutputStreamWriter 是字符流通向字节流的桥梁
如题.
如何理解OutputStreamWriter 是字符流通向字节流的桥梁
这个OuputStreamWriter是将字符流转换成字节流还是将字节流转换成字符流??
我重API字面意思理解就是将字符流转换成字节流,但下面程序中传入的确是一个字节流,到底是怎么回事哦?
  1. import java.io.*;
  2. class TransStreamDemo
  3. {
  4.      public static void main(String[] args) throws IOException
  5.      {

  6.         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));      
  7.                  //API上说OutputStreamWriter是字符流通向字节流的桥梁,按照字面意思就是将字符流转换成字节流,传入应该传入字符流才对呀,而这里System.out是SprintStream是一个字节流
  8.                  //难道OutputStreamWriter的功能也是将字节流转换成字符流???有些不明白这点???
  9.         BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));      
  10.          String line = null;
  11.          while((line=br.readLine())!=null)
  12.         {
  13.              if("over".equals(line))
  14.                  break;
  15.              bw.write(line.toUpperCase());
  16.              bw.newLine();
  17.              bw.flush();
  18.          }
  19.         br.close();
  20.                 bw.close();
  21.      }
  22. }
  23.    
复制代码

作者: Ysfox    时间: 2013-7-4 20:13
标题: 转换流图解
本帖最后由 Ysfox 于 2013-7-4 20:25 编辑





IO.jpg (34.18 KB, 下载次数: 0)

IO.jpg

作者: Ysfox    时间: 2013-7-4 20:18
本帖最后由 Ysfox 于 2013-7-4 20:24 编辑

经过很多的查找,现在大概能懂了
   InputStreamReader:是Reader的子类,将输入的字节流变为字符流,即将一个字节流的输入对象变为字符流的输入对象
          那么InputStreamReader(字节流),将字节流转换成为字符流,传的参数是字节流

   OutputStreamWrite:是Write的子类,将输出的字符流变为字节流,即将一个字符流的输出对象变为字节流输出对象          OutputStreamWrite(字节流),为什么传入的参数是字节流?,因为这个类是写入文件,是将字符流写入到字节流中去。
          这里字符流是write方法中的字符流数据,而这里的字节流是传的那个参数







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2