当前位置: 首页 > 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();}
}

字符流的底层原理:

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

相关文章:

  • 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编码协议详解
  • C#学习7_面向对象:类、方法、修饰符
  • 【AI】DeepWiki 页面转换成 Markdown 保存 - Chrome 扩展
  • 【速通RAG实战:索引】5.RAG分块策略与Embedding技术
  • React -> AI组件 -> 调用Ollama模型, qwen3:1.7B非常聪明
  • 基础算法系列——树的入门
  • Linux_进程退出与进程等待
  • (14)Element Plus项目综合案例
  • 在Hugging Face网站像Github一样克隆repository到本地的具体步骤
  • bootstrap入门
  • 从代码学习深度学习 - 单发多框检测(SSD)PyTorch版