黑马程序员技术交流社区
标题:
问个问题,什么时候必须要用到转换流 ?
[打印本页]
作者:
烟海
时间:
2014-8-22 00:17
标题:
问个问题,什么时候必须要用到转换流 ?
最近突然想不到为什么要用到转化流 。。
有什么情况下面,非要用转换流不可的吗??
作者:
地狱天堂
时间:
2014-8-22 03:46
网络传输都是字节流,就需要转化。
作者:
张周飞
时间:
2014-8-22 10:17
何时使用转换流?
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
总之,不论是字节文件还是字符文件,提高效率一般会用转换流的。
作者:
烟海
时间:
2014-8-22 22:18
张周飞 发表于 2014-8-22 10:17
何时使用转换流?
1.
如果使用非默认编码保存文件或者读取文件时,需要用到转换流,因为字节流的重载构造方 ...
因为转换流不能操作非文本文件......
所以就是只能操作文本文件......
而BufferedReader(new FileReader(c:\\c.txt)) 这样一样可以用到缓冲 。。。。这样就不需要用到转换流了。。。。
不过你说的指定编码。。貌似确实是只有转换流才能完成。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2