| 何时使用转换流? 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
 总之,不论是字节文件还是字符文件,提高效率一般会用转换流的。
 |