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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zhanqq2010 中级黑马   /  2014-6-29 11:02  /  1390 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

啥时候用到转换流?

4 个回复

倒序浏览
如果使用非默认编码保存文件或者读取文件时,需要用到转换流,因为字节流的重载构造方法中有指定编码格式的参数,而FielReader 与 FileWriter 是默认编码的文本文件
比如:
当我们使用默认GBK编码保存文本时,下面2句代码其实是一样的效果,
new OutputStreamWriter(new FileOutputStream("out.txt"))
new FileWriter("out.txt")
当要求保存为其他编码比如UTF-8时,就要这样写
new OutputStreamWriter(new FileOutputStream("out.txt"),"UTF-8")
而如果要读取一个UTF-8编码的文本文件时,同样的要用
new InputStreamReader(new FileInputStream("in.txt"),"UTF-8");
而不能用new FileWriter("in.txt")

当文件是字节文件时:
     读取:提高效率用BufferedReader的独有快速方法时,需要转换。FileInputStream BufferedReader
     输出:提高效率一般用BufferedWriter缓存,需要转换。FileOutputStream  BufferedWriter
当文件是字符流时:需要转换。
计算机处理的是字节数据
          读取时:将字符转换为字节,FileReader  BufferedRead
          输出时:将字节转换为字符,FileWriter BufferedWriter
总之,不论是字节文件还是字符文件,提高效率一般会用转换流的。

评分

参与人数 1技术分 +1 收起 理由
菜小徐 + 1

查看全部评分

回复 使用道具 举报
一种是像楼上所说的,需要对某个文件指定编码时用,另一种用的最多的是从键盘接收数据,将字节流转换为字符流,因为字符流中有一些方法操作起来比较方便,速度也快
回复 使用道具 举报
Royalblues 发表于 2014-6-29 14:46
如果使用非默认编码保存文件或者读取文件时,需要用到转换流,因为字节流的重载构造方法中有指定编码格式的 ...

嗯   非常感谢   这个有用
回复 使用道具 举报
Royalblues 发表于 2014-6-29 14:46
如果使用非默认编码保存文件或者读取文件时,需要用到转换流,因为字节流的重载构造方法中有指定编码格式的 ...

学习了   
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马