网站首页 > 博客文章 正文
在程序开发中,有时会遇到字节流和字符流之间需要进行转换的可能。在java.io包中提供了两个类可以将字节流转换为字符流,它们分别是InputStreamReader和OutputStreamWriter。
OutputStreamWriter是Writer的子类,能够将一个字节输出流转换成字符输出流,方便直接写入字符,而InputStreamReader是Reader的子类,能够将一个字节输入流转换成字符输入流,方便直接读取字符。下面通过案例学习如何将字节流转换为字符流,为了提高读/写效率,通过字符缓冲流实现转换的操作,如文件5-9所示。
文件5-9 Example09.java
package com.itheima.example;
import java.io.*;
public class Example09 {
public static void main(String[] args) throws Exception {
//创建字节输入流
FileInputStream input=new FileInputStream("read.txt");
//将字节输入流转换成字符输入流
InputStreamReader streamReader=new InputStreamReader(input);
//赋予字符输入流对象缓冲区
BufferedReader bufferReader=new BufferedReader(streamReader);
//创建字节输出流
FileOutputStream output=new FileOutputStream("dest2.txt")
//将字节输出流转换成字符输出流
OutputStreamWriter streamWriter=new OutputStreamWriter(output);
//赋予字符输出流对象缓冲区
BufferedWriter bufferWriter=new BufferedWriter(streamWriter);
String line=null;
//判断是否读到文件末尾
while ((line=bufferReader.readLine()) !=null) {
bufferWriter.write(line); //输出读取到的文件
}
bufferReader.close();
bufferWriter.close();
}
}
程序运行结束后,按F5键刷新chapter05项目后打开dest2.txt文件,执行结果如图5-5所示。
在文件5-9中,实现了字节流和字符流之间的转换,将字节流转换为字符流,从而实现直接对字符的读/写。需要注意的是,在使用转换流时,只能针对操作文本文件的字节流进行转换,如果字节流操作的是图片或者音频,此时转换为字符流就会造成数据丢失。
- 上一篇: Java面试 | 关于Redis 的面试题
- 下一篇: java:举例说明继承的概念
猜你喜欢
- 2025-05-15 Java教程:什么是分布式任务调度?怎样实现任务调度?
- 2025-05-15 最新出炉IT培训机构对比分析(千锋、黑马、动力节点)杜绝踩雷
- 2025-05-15 Java中死锁与活锁的区别,死锁与饥饿的区别?_Java并发编程基础
- 2025-05-15 Java面试题:数据库优化策略有哪些?
- 2025-05-15 Java教程:Spring Cloud都有哪些组件?
- 2025-05-15 Java虚拟机和Dalvik虚拟机有哪些区别和不同?
- 2025-05-15 Java干货:InetAddress基本操作演示
- 2025-05-15 Java中怎样将bytes转换为long类型?
- 2025-05-15 spring框架怎么实现依赖注入?
- 2025-05-15 测试工程师通常用哪个单元测试库来测试Java程序?
你 发表评论:
欢迎- 367℃用AI Agent治理微服务的复杂性问题|QCon
- 358℃初次使用IntelliJ IDEA新建Maven项目
- 356℃手把手教程「JavaWeb」优雅的SpringMvc+Mybatis整合之路
- 351℃Maven技术方案最全手册(mavena)
- 348℃安利Touch Bar 专属应用,让闲置的Touch Bar活跃起来!
- 346℃InfoQ 2024 年趋势报告:架构篇(infoq+2024+年趋势报告:架构篇分析)
- 345℃IntelliJ IDEA 2018版本和2022版本创建 Maven 项目对比
- 342℃从头搭建 IntelliJ IDEA 环境(intellij idea建包)
- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)