转换流-InputStreamReader 和 OutputStreamWriter
- 介绍
- InputStreamReader:Reader的子类,可以将InputStream(字节流)包装成Reader(字符流);
- OutputStreamWriter:Writer的子类,实现将OutputStream(字节流)包装成Writer(字符流);
- 当处理纯文本数据时,如果使用字符流效率更高,并且可以有效解决中文问题,所以建议将字节流转换成字符流;
- 可以在使用时指定编码格式(比如 utf-8,gbk,gb2312,ISO8859-1等),解决乱码问题;
- InputStreamReader

代码演示:- 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

代码演示:- 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 + "保存成功");
- }
- }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |