黑马程序员技术交流社区

标题: OutputStreamWriter和InputStreamReader到底有什么用? [打印本页]

作者: kfcka    时间: 2015-3-3 22:52
标题: OutputStreamWriter和InputStreamReader到底有什么用?
如题:OutputStreamWriter和InputStreamReader到底有什么用呢?
InputStreamReader可以用来做键盘录入,直接用readLine方法,很好用。
但下面的这种情况,是不是可以直接用FileReader去读取好好了??还有OutputStreamWriter又有什么用途??
  1. 将字节输入流变为字符输入流
  2. package org.lxh.iodemo.changeiodemo;  
  3. import java.io.File;  
  4. import java.io.FileInputStream;  
  5. import java.io.InputStreamReader;  
  6. import java.io.Reader;  
  7. public class InputStreamReaderDemo01 {  
  8.     public static void main(String[] args) throws
  9. Exception { // 所有的异常抛出  
  10.         File f = new File("d:" + File.separator + "test.txt");  
  11.         Reader reader = null;  
  12.         reader = new InputStreamReader(new FileInputStream(f));// 将字节流变为字符流  
  13.         char[] c = new char[1024];  
  14.         int len = reader.read(c);  
  15.         reader.close();  
  16.         System.out.println(new String(c, 0, len));  
  17.     }  
  18. }
复制代码




作者: limxing    时间: 2015-3-3 23:09
来回转换用
作者: wdhm5423    时间: 2015-3-3 23:14
本帖最后由 wdhm5423 于 2015-3-3 23:15 编辑

关于字符的可以用FileReader读取;
OutputStreamWriter(System.out);可以写到控制台。
InputStreamReader(System.in);读取键盘输入。


作者: z47057554    时间: 2015-3-3 23:25
本帖最后由 z47057554 于 2015-3-3 23:27 编辑

    只有转换流可以按指定码表读写文本数据
    你要是只用默认码表的话,那它只是将字节流转换成字符流,这样的做的意义是通过转换,可以使用字符流的方法,比如按行读取readLine(),能更方便的操作文本数据
作者: 习惯就好    时间: 2015-3-4 10:15
同意楼上解答
作者: 笑望长空,逆转    时间: 2015-3-4 10:29
也可以用于字符集的转换,解决乱码问题。
作者: 邓士林    时间: 2015-3-4 10:46
学习,,,,
作者: 文浩    时间: 2015-3-4 15:03
字符流和字节流转换用的,api里面说的桥梁
作者: ko889910    时间: 2015-3-4 21:16
首先你要知道filereader类是继承自inputstreamreader的
没有爸爸哪来儿子啊另外filereader只能读取文件
作者: 女神从来不加班    时间: 2015-3-4 22:07
转换流是为了方便操作字节流而存在的 额 如果确定操作的都是字符流了 那就直接reader writer搞定




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