IO流第38天(转换流InputStreamReader和OutputStreamWriter)
转换流InputStreamReader和OutputStreamWriter
- InputStreamReader:Reader的子类,可以将InputStream(字节流)包装成Reader(字符流)
- OutputStreamWriter:Writer的子类,可以将OutputStream(字节流)包装成Writer(字符流)
- 当处理纯文本数据时,如果使用字符流效率更高,并且可以有效解决中文乱码问题,所以建议将字节流转换成字符流
- 可以在使用时指定编码格式(比如utf-8,gbk,gb2312等)
InputStreamReader可以传入一个Input对象,而且可以指定处理的编码方式
OutputStreamWriter可以传入一个Outnput对象,而且可以指定处理的编码方式
InputStreamReader案例:
演示使用InputStreamReader转换流解决中文乱码问题
将字节流FileInputStream转换成InputStreamReader字符流
public static void main(String[] args) throws IOException {
String filepath = "d:\\a.txt";
//将 FileInputStream转成InputStreamReader,指定编码为gbk
InputStreamReader isr = new InputStreamReader(new FileInputStream(filepath), "gbk");
//将InputStreamReader传入给BufferedReader
BufferedReader br = new BufferedReader(isr);
//读取
String s = br.readLine();
System.out.println(s);
br.close();
}
OutputStreamWriter案例:
演示使用OutputStreamWriter转换流解决中文乱码问题
将字节流FileOutputStream转换成OutputStreamWriter字符流
public static void main(String[] args) throws IOException {
String filePath="d:\\abc.txt";
String str="helle,龚嘉乐,你一定会成功,加油,努力";
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(filePath));
OutputStreamWriter osw = new OutputStreamWriter(bos,"gbk");
osw.write(str);
System.out.println("输出成功");
osw.close();
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?