转换流

转换流

常用于解决字符流读写时的中文乱码现象

乱码原因: 由于保存时使用的码表和打开时使用的码表不一致造成的。

**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的使用类似, 可以参考上面的实例

原文地址:https://www.cnblogs.com/zpKang/p/12917768.html