转换流
转换流
常用于解决字符流读写时的中文乱码现象
乱码原因: 由于保存时使用的码表和打开时使用的码表不一致造成的。
**java.io.OutputStreamWriter
**写出流转换
继承关系:
- java.lang.Object
java.io.Writer
java.io.OutputStreamWriter
**java.io.InputStreamReader
**读取流转换
继承关系:
- java.lang.Object
java.io.Reader
java.io.InputStreamReader
OutputStreamWriter
构造方法
方法 | 说明 |
---|---|
OutputStreamWriter(OutputStream out,String charsetName) | charsetName是指定编码格式的字符串, 例如UTF-8, ISO-8859-1, GBK等 |
实例:
try {
String path = "D:\\DEV\\eclipse\\workspace\\day14\\test.txt";
// 1. 提供字节流
OutputStream out = new FileOutputStream(path);
// 2. 提供字符流 -- 字符流的参数也需要是字符流
// 但是只有字节流, OutputStreamWriter可以把字节流转为字符流
Writer out2 = new BufferedWriter(
// 写出时指定编码
new OutputStreamWriter(out,"ISO-8859-1")
);
out2.write("大家好, 我叫渣渣辉");
// 3. 释放资源
out2.close();
} catch (IOException e) {
e.printStackTrace();
}
InputStreamReader
构造方法
方法 | 说明 |
---|---|
InputStreamWriter(InputStream out,String charsetName) | charsetName是指定编码格式的字符串, 例如UTF-8, ISO-8859-1, GBK等 |
实例:
略, 和OutputStreamWriter
的使用类似, 可以参考上面的实例