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

Java后端开发day42--IO流(二)--字符集字符流

请添加图片描述
(以下内容全部来自上述课程)
在这里插入图片描述

拓展. try…catch异常处理(能看懂)

请添加图片描述
接口:AutoCloseable
特点:特定的情况下,可以自动释放资源
注意:只有实现了AutoCloseable接口的类,才能在小括号中创建对象。
请添加图片描述

1. 字符集

1.1 ASCII字符集(英文字母)

计算机在存储英文的时候只用一个字节就可以了。

  • ASCII编码规则:前面补0,补齐8位
    请添加图片描述
  • ASCII解码规则:直接转成十进制
    请添加图片描述

1.2 GBK(国标扩展)

windows系统默认使用的就是GBK。系统显示:ANSI

  • GBK英文编码规则:不足8位,前面补0
    请添加图片描述
  • GBK汉字编码规则:不需要变动
  • 规则1:汉字两个字节存储
  • 规则2:高位字节二进制一定以1开头,转成十进制之后是一个负数
    请添加图片描述
    请添加图片描述

1.3 Unicode (万国码)

  • UTF-16编码规则:用2~4个字节保存
  • UTF-32编码规则:固定使用4个字节保存
  • UTF-8编码规则:用1~4个字节保存
    英文:一个字节
    中文:三个字节且第一个字节首位是1
    在这里插入图片描述
    请添加图片描述
    请添加图片描述

拓展:为什么会有乱码?

  1. 读取数据时未读完整个汉字
  2. 编码和解码方式不统一

1.4 编码和解码的方法

请添加图片描述

2. 字符流

字符流的底层就是字节流。
字符流 = 字节流 + 字符集
使用场景:对于纯文本文件进行读写操作。
请添加图片描述

2.1 字符输入流

一次读一个字节,遇到中文时,一次读多个字节。

FileReader

  1. 创建字符输入流对象
    细节:如果文件不存在,就直接报错
    请添加图片描述
  2. 读取数据
    细节:
  • 按字节进行读取,遇到中文,一次读多个字节,读取后解码,返回一个整数
  • 读到文件末尾了,read方法返回-1
    请添加图片描述
  1. 释放资源
    请添加图片描述

read细节:

  • 空参:
    请添加图片描述
  • 有参:
    读取数据、解码、强转三步合并了,把强转之后的字符放到数组当中。

2.2 字符输出流

底层会把数据按照指定的编码方式进行编码,变成字节再写到文件中。

2.2.1 FileWriter构造方法

请添加图片描述

2.2.2 FileWriter书写细节

  1. 创建字符输出流对象
  • 参数是字符串表示的路径或者File对象都是可以的
  • 如果文件不存在会创建一个新的文件,但是要保证父级路径是存在的
  • 如果文件已经存在,则会清空文件,如果不想清空可以打开续写开关
  1. 写数据
  • 如果write方法的参数是整数,但是实际上写到本地文件中的是整数在字符集上对应的字符
  1. 释放资源
    每次使用完流之后都要释放资源

相关文章:

  • 2025年渗透测试面试题总结-某战队红队实习面经(附回答)(题目+回答)
  • Nmap 工具的详细使用教程
  • 《Python星球日记》第34天:Web 安全基础
  • 前端流行框架Vue3教程:13. 组件传递数据_Props
  • 今年我国已发生三级以上地震318次
  • 在 Win11 下安装 Wireshark 的详细步骤
  • 深入浅出iOS性能优化:打造极致用户体验的实战指南
  • 餐饮加盟店如何通过日事清全流程闭环管理实现进度同步与效率升级?
  • Java学习手册:Base64 编码概念和应用场景
  • python校园二手交易管理系统-闲置物品交易系统
  • python setup.py install --user和pip install -e .的区别
  • C++ - 仿 RabbitMQ 实现消息队列(1)(环境搭建)
  • 高等数学第四章---不定积分(4.4有理函数的不定积分2)
  • springBoot中自定义一个validation注解,实现指定枚举值校验
  • 【JEECG】BasicTable单元格编辑,插槽添加下拉组件样式错位
  • 【Trea】Trea国际版|海外版下载
  • Suno v4.5:AI 音乐创作的新突破
  • SLAM:正定矩阵二次型的定义和性质
  • GD32/STM32 ADC/DMA使用指南
  • 人工智能端侧热度再起
  • 马上评|演出服“穿过就退货”的闹剧不该一再重演
  • 江苏淮安优化村级资源配置:淮安区多个空心村拟并入邻村
  • 青岛鞋企双星名人集团家族内斗:创始人发公开信指控子孙夺权
  • 江西浮梁县县长张汉坤被查,此前已有4个月无公开活动
  • 有乘客被高铁车门夹住?铁路回应:系突感不适下车,未受伤,列车正点发车
  • 泰国培训十万网络安全人员加强网络防御打击电诈