A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

如题: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. }
复制代码



点评

FileReader只能用来操作字符流,而转换流可以用来进行字符流和字节流之间的转换,且转换完成后就可以使用转换完成后的相应的字节流或字符流的方法~   发表于 2015-3-4 23:23

评分

参与人数 1技术分 +1 收起 理由
万合天宜 + 1 加油~

查看全部评分

10 个回复

倒序浏览
来回转换用
回复 使用道具 举报
本帖最后由 wdhm5423 于 2015-3-3 23:15 编辑

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

回复 使用道具 举报
本帖最后由 z47057554 于 2015-3-3 23:27 编辑

    只有转换流可以按指定码表读写文本数据
    你要是只用默认码表的话,那它只是将字节流转换成字符流,这样的做的意义是通过转换,可以使用字符流的方法,比如按行读取readLine(),能更方便的操作文本数据
回复 使用道具 举报
同意楼上解答
回复 使用道具 举报
也可以用于字符集的转换,解决乱码问题。
回复 使用道具 举报
学习,,,,
回复 使用道具 举报
字符流和字节流转换用的,api里面说的桥梁
回复 使用道具 举报
首先你要知道filereader类是继承自inputstreamreader的
没有爸爸哪来儿子啊另外filereader只能读取文件
回复 使用道具 举报
转换流是为了方便操作字节流而存在的 额 如果确定操作的都是字符流了 那就直接reader writer搞定
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马