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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 赵卓辉 中级黑马   /  2014-3-17 14:40  /  1276 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

请问什么时候要用到转换流?主要应用在哪方面?

5 个回复

倒序浏览
转换流是字节流和字符流之间的桥梁,方便了字符流与字节流之间的操作,InputStreamReader,OutputStreamWriter,转换流主要应用于,当字节流中的数据都是字符时,转成字符流操作更高效。
回复 使用道具 举报
转换流是字节流和字符流之间的桥梁,比如,你需要设置字符编码的时候就需要使用,还有你需要将字符流转换为字节流时,或者需要将字节流转化为字符流是,多温习一下毕老师的IO教程,多看,多理解,慢慢就明白了。
回复 使用道具 举报
转换流是字节流和字符流之间的桥梁,另外,用的比较多得是转换流可以设定字符的编码方式,当需要改变编码表的时候用转换流实现。
回复 使用道具 举报
改变文件存储格式的时候 或者按指定编码读取文件的文件的时候
回复 使用道具 举报
1 字节流
InputStream                  ->FileInputStream
OutputStream                 ->FileOutputStream


2 . 字符流
Reader -> BufferedReader     -> LineNumberReader
       -> InputStreamReader  -> FileReader

Writer -> BufferedWriter
       -> OutputStreamWriter -> FileWriter
InputStreamReader   OutputStreamWriter  为转换流,FileReader FileWriter为其子类


如何选用哪种流读取文件?
IO流分为字符流 与 字节流,根据读写文件确定使用哪一种流,比如
读取文件是否为文本:
     是:用字符流
    不是:用字节流

何时使用转换流?
1.
如果使用非默认编码保存文件或者读取文件时,需要用到转换流,因为字节流的重载构造方法中有指定编码格式的参数,而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")

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

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

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