字节流转换成字符流
转换流:
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+"保存成功"); } }
浙公网安备 33010602011771号