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

Unicode字符集字符流

Unicode:万国码

UTF-8不是字符集,是一种编码方式。

有时候会产生乱码,产生乱码的原因:读取汉字时未读完整个汉字

                                                              编码与解码规则不一样

字符流

FileReader和FileWriter是用于文件读写的字符流类。FileReader用于从文件中读取字符数据,FileWriter用于向文件中写入字符数据。

public class Test3 {public static void main(String[] args) throws IOException {//创建对象并关联本地文件FileReader fr=new FileReader("C:\\Users\\小新\\IdeaProjects\\Test\\src\\text");//2.读取数据read()//字符流的底层也是字节流,默认也是一个一个字节的读取的。//如果遇到中文就会一次读取多个,GBK一次读两个字节,UTF-8一次读取8个字节int ch;while ((ch=fr.read())!=-1){System.out.println((char)ch);}fr.close();}
}

read()细节:

1.read():默认也是一个字节一个字节的读取的,如果遇到中文就会一次读取多个

2.在读取之后,方法的底层还会进行解码并跳转成十进制。

最终把这个十进制作为返回值

这个十进制的数据也表示在字符集上的数字

如果想看到中文汉字,就是把这些十进制数据,再进行强转就可以了。

public class Test3 {public static void main(String[] args) throws IOException {//创建对象并关联本地文件FileWriter fw=new FileWriter("C:\\Users\\小新\\IdeaProjects\\Test\\src\\text",true);char[] chars={'0','b','d','大'};fw.write(chars);fw.close();}
}

字符流的底层原理:

相关文章:

  • QT:获取软件界面窗口的尺寸大小2025.5.8
  • Java—— 集合 Collection
  • [GESP202409 六级] 小杨和整数拆分 Java
  • ​​​​​​​MySQL数据库故障排查指南
  • 382_C++_在用户会话结束时,检查是否有其他会话仍然来自同一个客户端 IP 地址,没有连接状态设置为断开,否则为连接
  • 【并发编程】MySQL锁及单机锁实现
  • [数据库之十四] 数据库索引之位图索引
  • Mac 平台获取地区标识符号
  • 2025最新免费视频号下载工具!支持Win/Mac,一键解析原画质+封面
  • 【NextPilot日志移植】整体功能概要
  • SpringBoot3 + Druid + DynamicDataSource + PgSQL 连接池优化方案
  • spring中RequestContextHolder
  • 【WEB3】区块链、隐私计算、AI和Web3.0——隐私计算(2)
  • AI赋能高频PCB信号完整性优化
  • Ubuntu上安装MySQL 8并配置Navicat远程连接
  • Redis如何实现分布式锁
  • CFCA受邀参加盛京银行手机银行7.0发布会
  • crontab
  • 5月8日星期四今日早报简报微语报早读
  • 红外遥控与NEC编码协议详解
  • 北约年度报告渲染所谓“中国核威胁”,国防部回应
  • 上海乐高乐园度假区将于7月5日开园
  • 五月A股怎么买?券商金股电子权重第一,格力电器最热
  • 指挥家高健:东方市民音乐会“高贵不贵”,我愿意常来
  • 综合治理食品添加剂滥用问题,国务院食安办等六部门联合出手
  • 证券时报头版:巴菲特留给投资界的珍贵启示