定义:
流代表任何有能力产出数据的数据源对象,或者是有能力接收数据对象
本质:
数据传输
分类:
根据流向划分:
- 输入流:把数据从设备上读取到内存中
- 输出流:吧数据从内存中 写出到其他设备上
输入:把硬盘中的数据读取到内存中使用
输出:把内存中的数据写入到硬盘中保存
根据类型划分:
- 字节流: 以字节为单位,读写数据的流
- 字符流:以字符为单位,读写数据的流
区别:
- 传输数据的最基本的单位是字节流
- 字节流:每次读取(写出)一个字节,当传输资源文件为中文时就会出现中文乱码
- 字符流:每次读取(写出)两个字节,有中文时,可以正确的显示中文
- 字节流 InputStream输入流 OutputStream输出流
- 字符流 Reader 输入流 Writer输出流
字符编码集:
1字符 = 2字节 1字节byte = 8位 bit
一个汉字占两个字节长度
- 字符编码:一套自然语言的字符与二进制之间的规则
- 字符集:也叫编码表,是一个系统支持的所有字符的集合,包括各个国家的文字、标点符号、图形符号、数字等
- 计算机要准确的存储和识别各种字符集合符号,需要进行字符编码,一套字符集必然至少有一套字符编码,常见的字符有 ASCII 字符集、GBK 字符集、Unicode 字符集
- ASCII字符集:美国信息交换标准代码 ,基于拉丁字母的一套电脑编码系统 用于显示现代英语,主要包括控制字符(回车、退格、换行等)可以显示字符(英文大小字符,阿拉伯数字西文符号)
- ISO-8859-1拉丁码表:用于显示欧洲使用语言,荷兰、丹麦、意大利、德育 、 西班牙语等
- GBxxx字符:GB 就是国标的意思 ,是为了显示中文而设计的一套字符集
- GB2312简体中文码表:包含7000多个简体中文
- GBK :最常用的中文码表,是在GB2312的标准上扩展了规范,使用了双节码的方案 ,汉字21003 个,汉字和图形共计21886个,支持繁体字
- GB18030:最新的中文码表 收录汉字70244个 采用多字节编码 每个字由 1个2个 或 4个字节组成 ,支持中国国内少数民族的汉字,同时支持繁体汉字以及日韩汉文字
Unicode字符集:
- Unicode 编码系通为表达任意字符而设计的,是业界的一种标准,也称之为统一码、标准万国码
- 它最多使用4个字节的数字来表达每个字符、 符号 、或者文字,有三种编码方案 UTF-8 、UTF-16、UTF-32,最常用的是UTF-8
- 拉丁文等字符需要二个字节码,大部分常用文字(包括中文)使用三个字节编码