当前位置: 首页 > news >正文

IO流-转换流

转换流是字符流和字节流之间的桥梁

1.可以根据字符集一次读取多个字节

2.读取数据不会乱码

代码练习:

1.利用转换流按照指定字符编码读取

public class ConvertStreamDemo01 {public static void main(String[] args) throws IOException {/*利用转换流按照指定字符编码读取(了解)"D:\aaa\ex\gbkfile.txt"JDK11:淘汰了这种,有替代方案*//* InputStreamReader isr = new InputStreamReader(new FileInputStream("gbkfile.txt"),"GBK");int ch;while ((ch = isr.read()) != -1) {System.out.print((char) ch);}isr.close();*///替代方案FileReader fr = new FileReader("gbkfile.txt", Charset.forName("GBK"));int ch;while ((ch = fr.read()) != -1) {System.out.print((char) ch);}fr.close();}
}

2.利用转换流按照指定字符编码写出

public class ConvertStreamDemo02 {public static void main(String[] args) throws IOException {/*利用转换流按照指定字符编码写出*//*OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("b.txt"),"GBK");osw.write("你好你好");osw.close();*///替代FileWriter fw = new FileWriter("c.txt", Charset.forName("GBK"));fw.write("好了好了");fw.close();}}

3.将本地文件中的GBK文件,转换为UTF-8

public class ConvertStreamDemo03 {public static void main(String[] args) throws IOException {//1.JDK11以前的方案/* InputStreamReader isr = new InputStreamReader(new FileInputStream("b.txt"),"GBK");OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("d.txt"),"UTF-8");int b;while ((b = isr.read())  != -1){osw.write(b);}osw.close();isr.close();*///2.替代方案FileReader fr = new FileReader("b.txt", Charset.forName("GBK"));FileWriter fw = new FileWriter("e.txt",Charset.forName("UTF-8"));int b;while ((b = fr.read()) != -1){fw.write(b);}fw.close();fr.close();}
}

4.利用字节流读取文件中的数据,每次读一整行,并且不能出现乱码

public class ConvertStreamDemo04 {/*利用字节流读取文件中的数据,每次读一整行,并且不能出现乱码*/public static void main(String[] args) throws IOException {//1.字节流在  读取中文时,会出现乱码,但是字符流不会//2.字节流是没有一次读取一整行的,但是字符缓冲流可以/*FileInputStream fis = new FileInputStream("a.txt");InputStreamReader isr = new InputStreamReader(fis);BufferedReader br = new BufferedReader(isr);String str = br.readLine();System.out.println(str);br.close();*/BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("a.txt")));String line;while ((line =br.readLine()) != null){System.out.println(line);}br.close();}}

http://www.dtcms.com/a/333552.html

相关文章:

  • MySQL的分析查询语句(EXPLAIN):
  • stream流debug
  • 华硕主板怎样调整风扇转速
  • Redis高级优化实战:从键值设计到集群调优
  • [HDCTF 2023]Normal_Rsa(revenge)
  • 晶振电路的负载电容、电阻参数设计
  • 重新定义城市探索!如何用“城市向导”解锁旅行新体验?
  • PID控制算法
  • Pytest 插件使用指南:让你的测试更高效
  • 中级统计师-会计学基础知识-第一章 账户与复试记账
  • @PreAuthorize(“hasPermission(#resourceId, ‘DATA_ASSET‘, ‘read‘)“)无法识别参数
  • 机器学习案例——《红楼梦》文本分析与关键词提取
  • C语言第八章指针五
  • 国内著名AI搜索优化专家孟庆涛发表《AI搜索内容可信度评估综合指南》
  • AI智能体在软件测试中的应用与未来趋势
  • 快速了解PCA降维
  • exec函数族、线程
  • termios 线程 poll epoll进化 二叉AVL红黑树
  • Redis入门和简介
  • python学习打卡day35
  • 分库分表和sql的进阶用法总结
  • AI客户维护高效解决方案
  • element-plus 如何通过js验证页面的表单
  • 开发避坑指南(27):Vue3中高效安全修改列表元素属性的方法
  • IP地址代理服务避坑指南:如何选择优质的IP地址代理服务公司?
  • 前端设置不同环境高德地图 key 和秘钥(秘钥通过运维统一配置)
  • 六大主流负载均衡算法
  • w484扶贫助农系统设计与实现
  • 【postgresql】一文详解postgresql中的统计模块
  • [Pyro概率编程] 概率分布 | 共轭计算 | 参数存储库