解决文件编码问题---java转换流

1 为什么需要java转换流

  1. 当我们使用FileReader读取数据时候读取数据的时候不能制定编码方式
  2. 当我们使用FileWriter写入数据的时候不能指定编码方式
  3. 引入InputStreamReader类,它可以将InputStream转化为Reader在这个过程中可以实现改变编码方式
  4. 引入OutputStreamWriter类,它可以将OutStream类转化为Writer类,这期间可以改变编码方式。

2 示例

  1. InputStreamReader
public class InputStreamReader_ {
    public static void main(String[] args) throws IOException {

        String filePath = "e:\\a.txt";
        //解读
        //1. 把 FileInputStream 转成 InputStreamReader
        //2. 指定编码 gbk
        //InputStreamReader isr = new InputStreamReader(new FileInputStream(filePath), "gbk");
        //3. 把 InputStreamReader 传入 BufferedReader
        //BufferedReader br = new BufferedReader(isr);

        //将2 和 3 合在一起
        BufferedReader br = new BufferedReader(new InputStreamReader(
                                                    new FileInputStream(filePath), "gbk"));

        //4. 读取
        String s = br.readLine();
        System.out.println("读取内容=" + s);
        //5. 关闭外层流
        br.close();

    }


}
  1. OutputStreamWriter
public class OutputStreamWriter_ {
    public static void main(String[] args) throws IOException {
        String filePath = "e:\\hsp.txt";
        String charSet = "utf-8";
        OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(filePath), charSet);
        osw.write("hi, 韩顺平教育");
        osw.close();
        System.out.println("按照 " + charSet + " 保存文件成功~");


    }
}

你可能感兴趣的:(java,开发语言)