字节流转换成字符流

转换流:

  InputSreamRead 和 OutputStreamWriter;

InputSreamRead:

  Read 的子类可以将 InputSream(字节流)包装(转换)Read (字符流)【InputSreamRead  isr=new InputSreamRead(new FileInputSteam(” 文件路径 “) ," 编码格式 ")】

OutputStreamWriter:

  Wiriter 的子类,实现将 OutputStream 包装成 Writer【OutputStreamWriter osw=new OutputStreamWriter(new FileInputSteam(” 文件路径 “) ," 编码格式 ")】

好处:当处理纯文本数据时,如果使用字符流效率更高并且可以有效的解决中文乱码问题,所以建议将字节流转换成字符流;

  可以在使用时自定编码格式(utf-8 gbk gb2312 ISO8859-1 等)

  

package GenericeExcise.InputStreamRead_;

import java.io.*;

/**
 * Copyright (C), 2018-2021, Mr.Lin
 * Author: Mr.Lin
 * Date: 2021/11/30 4:28
 * FileName: InputStreamRead_
 * Description: 字节流转换字符流(读取 根据编码格式读取,)
 */
public class InputStreamRead_ {
    public static void main(String[] args) throws IOException {
        String str="E:\\123.txt";
        BufferedReader gbk = new BufferedReader(new InputStreamReader(new FileInputStream(str), "utf8"));
        String s = gbk.readLine();

        gbk.close();
        System.out.println("转换成功"+s);

    }
}
package GenericeExcise.OutputStreamWriter_;


import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;

/**
 * Copyright (C), 2018-2021, Mr.Lin
 * Author: Mr.Lin
 * Date: 2021/11/30 4:51
 * FileName: OutputStreamWriter_
 * Description:指定处理的编码格式 字节流转换字符流
 */
public class OutputStreamWriter_ {
    public static void main(String[] args) throws IOException {
        String str="E:\\123.txt";
String charSet="gbk";
        OutputStreamWriter gbk = new OutputStreamWriter(new FileOutputStream(str), charSet);
        gbk.write("嗨ooo");
        gbk.close();
        System.out.println("按照编码格式:"+charSet+"保存成功");
    }
}

 

posted @ 2021-11-30 05:03  骄傲的林先生  阅读(427)  评论(0)    收藏  举报