编码表

# 集成电路
0. 电子元件构成的电路板:只能存储0和1
读写速度:CPU > 内存 > 硬盘
1. cpu:中央处理器(Central Processing Unit)
1). 作用:调用,计算
2). 速度最快
2. 内存:临时性存储设备
1). 作用:缓存数据给CPU进行操作
2). 特点:通电工作,断电数据清空
3). 速度次之
3. 硬盘:持久性存储设备
1). 作用:长久保存数据
2). 速度最慢
# 读写
1. 读
硬盘 -> 内存 -> CPU
2. 写
CPU -> 内存 -> 硬盘
# IO流
0. 以内存为对象
1. input:输入(读)
硬盘 -> 内存
2. output:输出(写)
内存 -> 硬盘
3. IO流分类
字符流只能操作纯文本文件
字节流什么类型的文件都可以操作
4. 创建字节输出流的对象
1). FileOutputStream(String) / FileOutputStream(File)
I. 注意点:
如果文件不存在,会自动创建
如果文件存在,会默认把文件覆盖
II. 操作
FileOutputStream fos = new FileOutputStream("day10/a.txt");
fos.write(98);
fos.close();
2). FileOutputStream(String, true) / FileOutputStream(File, true)
如果文件不存在,会自动创建
如果文件存在,不会覆盖原文件,在文件末尾追加
5. 字节输出流的write()方法
6. 获取系统换行符(可以跨平台)
String separator = System.lineSeparator();
7. 字节流IO异常处理
try...catch
8. 字符输入流
1). 字节数组
2). 循环读取
# 复制文件:一个读,一个写(重点)
1. 字节输入流:读原文件
fis new FileInputStream
2. 字节输出流:写副本文件
fos new FileOutputStream
两种方式
1. 方案一: 一次复制一个字节
int content;
while((content = fis.read()) != -1) {
fos.write(content);
}
// 习惯: 先开的后关
fos.close();
fis.close();
2. 方案二: 一次复制一个字节数组
int length;
byte[] buffer = new byte[1024];
while((length = fis.read(buffer)) != -1) {
fos.write(buffer, 0, length);
}
内存和硬盘
用空间换时间
指的是占用内容空间越大,速度就越快
但是根据情况,内存占用也有上限
# 字节缓冲流
BufferedInputStream
BufferedOutputStream
# 乱码问题
1. 观察
1). 一个英文字母1个字节
2). 一个中文字符3个字节
2. 问题
1). 用字节流读中文会乱码
2). 用字符流读中文不会乱码还很准确
3. 编码表
0). 作用: 将人类的字符和计算机01进行转换
1). ASCII码(美国)
I. 占一个字节
II. 128个字符
2). ISO-8829-1码(欧洲: 拉丁码)
I. 占一个字节
II. 256个字符
兼容了ASCII码表
3). GBK(国标扩)
I. 占两个字节
II. 65536个字符
兼容了ASCII码表
4). UTF-8
I. 英文字母一个字节,中文字符3个字节
Windows中文版系统默认编码
# 字符流
字符流 = 字节流 + 编码表
1. FileReader: 字符输入流
= FileInputStream + 平台默认编码表(IDEA默认UTF-8)
2. FileWriter: 字符输出流
= FileOutputStream + 平台默认编码表(IDEA默认UTF-8)
# 编解码
1. 编码(写)
将人看得懂 -> 计算机看得懂
a -> 0110 0001
2. 解码(读)
计算机看得懂 -> 人看得懂
0110 -> a
3. 编码和解码都会用到编码表
4. 乱码
1). 第一种: 不支持这个编码规则
2). 第二章: 编码和解码使用的编码表不一致
posted @   青核桃啊  阅读(91)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示