2025/11/5 IO流(字节流、字符流、字节缓冲流、字符缓冲流) 计算机存储规则(ASCII、GBK、Unicode)

IO流(存储和读取数据的解决方案)

IO流的分类

**纯文本文件:**Windows自带的记事本打开能读懂

IO流体系

FileOutputStream

FileOutputStream书写细节

FileOutputStream写数据的三种方式

FileOutputStream写数据的两个问题

换行写

续写

FileInputStream

FileInputStream循环读取

一定要定义第三方变量

文件拷贝

注意:选择一个比较小的文件,不要太大

FileInputStream读取的问题

FileInputStream一次读写一个字节

FileInputStream一次读写多个字节

文件拷贝(一次读写多个字节),节省运行时间

try...catch异常处理

字节流读取文件的时候,文件中不要有中文

ASCII字符集

存储英文,一个字节就足以

计算机存储规则(英文)

1个字节=8个比特

计算机存储规则(英文)(GBK)

计算机存储规则(汉字)(GBK)

**规则1:**汉字两个字节存储

**规则2:**高位字节二进制一定以1开头,转成十进制之后是一个负数

总结

字符集

Unicode:万国码

计算机存储规则(英文)(Unicode)

计算机存储规则(中文)(Unicode)

UTF-8是Unicode字符集的一种编码方式

总结

为什么会有乱码?

**字节流:**一次读取一个字节

如何不产生乱码?

扩展

Java中编码的方法

Java中解码的方法

字符流

字符流的底层就是字节流

字符流=字节流+字符集

特点:

使用场景:对纯文本文件进行操作

FileReader

1)创建字符输入流对象

2)读取数据

空参read方法读取数据

有参read方法读取数据

3)释放资源

FileWriter构造方法

FileWriter成员方法

FileWriter书写细节

字符流原理解析

flush和close方法

字节流和字符流的使用场景

练习一:文件加密

用一个数字异或同一个数字两次可以得到本身

加密

解密

练习二:修改文件中的数据

**细节1:**文件中的数据不要换行

**细节2:**bom头

IO流体系

**字节缓冲流:**底层自带了长度为8192的缓冲区提高性能

练习-拷贝文件(一次读写一个字节)

一次读写多个字节

字节缓冲流提高效率的原理

**字节缓冲流:**底层自带了长度为8192的缓冲区提高性能

字节缓冲流的构造方法

字节缓冲流的特有方法

总结

练习一:拷贝文件

练习二:修改文本顺序

相关推荐
wuminyu2 小时前
JVM规范学习总结:解释器与JIT编译器如何处理JVM字节码
java·linux·c语言·jvm·c++
txxzjmzlh2 小时前
SpringBoot 配置⽂件
java·spring boot·spring
小徐不徐说2 小时前
序列化与反序列化:把 C++ 对象可靠地保存下来
开发语言·数据库·c++·php
ZhengEnCi2 小时前
模型训练完整流程:从数据准备到模型上线的 10 个关键步骤(全文可跑)
后端·算法
ragnwang2 小时前
Notes: Python pybind11 import C++ module
开发语言·c++·python
Wang's Blog2 小时前
Java 项目实战: 交友项目 - 搜索附近的功能概述和分析
java·开发语言·交友
骑着蜗牛撵大象3272 小时前
大模型 Agent 的沙箱护栏:gVisor 隔离、出口白名单与审计闭环
java·开发语言·jvm·安全·agent沙箱·gvisor·microvm
独泪了无痕3 小时前
Hutool之LocalDateTimeUtil:让时间间隔操作如虎添翼
java
Dxy12393102164 小时前
JS DES 加密详解
开发语言·javascript·arcgis
充值内卷4 小时前
我给桌面加了个鱼缸:C++ 写后端,WebView2 里养一座 Three.js 小岛
开发语言·javascript·c++