IO流 p9 转换流-InputStreamReader 和 OutputStreamWriter
转换流-InputStreamReader 和 OutputStreamWriter[*]介绍
[*]InputStreamReader:Reader的子类,可以将InputStream(字节流)包装成Reader(字符流);
[*]OutputStreamWriter:Writer的子类,实现将OutputStream(字节流)包装成Writer(字符流);
[*]当处理纯文本数据时,如果使用字符流效率更高,并且可以有效解决中文问题,所以建议将字节流转换成字符流;
[*]可以在使用时指定编码格式(比如 utf-8,gbk,gb2312,ISO8859-1等),解决乱码问题;
[*]InputStreamReader
https://img2023.cnblogs.com/blog/3008601/202306/3008601-20230604103426969-386500042.png
代码演示:
import java.io.*;
/**
* @author: 86199
* @date: 2023/5/7 17:18
* @description: 演示使用 InputStreamReader 转换流解决中文乱码问题
* 将字节流 FileInputStream 转换成字符流 InputStreamReader,指定编码 gbk/utf-8
*/
public class InputStreamReader_ {
public static void main(String[] args) throws IOException {
String filePath = "e:\\a.txt";
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(filePath), "gbk"));
//读取
String s = bufferedReader.readLine();
System.out.println("读取内容 = " + s);
//关闭流
bufferedReader.close();
}
}
[*]OutputStreamWriter
https://img2023.cnblogs.com/blog/3008601/202306/3008601-20230604103435801-20797254.png
代码演示:
package com.hsp.transformation;
import java.io.*;
/**
* @author: 86199
* @date: 2023/5/7 17:31
* @description: 演示 OutputStreamWriter 使用,把FileOutputStream 字节流,转成OutputStreamWriter
* 指定处理的编码 gbk/utf-8/utf8
*/
public class OutputStreamWriter_ {
public static void main(String[] args) throws IOException {
String filePath = "e:\\test.txt";
String charSet = "utf8";
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(new FileOutputStream(filePath), charSet);
outputStreamWriter.write("只因你太美");
outputStreamWriter.close();
System.out.println("文件按照" + charSet + "保存成功");
}
}
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页:
[1]