IO体系(带图)

IO体系

流的本质:对数据的传输,字节的一个集合,有方向的数据传输.
流的作用:在数据源和程序之间建立通道
数据源:磁盘 远程服务器(Socket) 键盘 鼠标
从磁盘上读取一个文件 磁盘相当于一个数据源,加载到内存上.从磁盘流向内存.
流按方向划分:

流按单位划分:

字节流:二进制的(一个字节式8个bit位),如:0101010 (视频,音频…)
1.二进制数据:将数据转换成二进制数
2.byte数据:读/写均为字节(byte)数据.
3.效率高:二进制数据不需要编码和解码的,比文本i/o效率高
4.可移植性:与主机的编码方式无关
字符流:字符形式存储 依赖编码方式
1.字符数据:字符流将原始数据解释成字符的序列
2.依赖编码方式:文本数据存储依赖编码方式,字符流的输入和输出需要进行编码和解码

字节和字符的区别:

基本单位不同:字节是按照字节为单位读取(8bit),字符是按照字符单位读取
处理对象不同:字节流可以处理任意对象(视频 音频 文档…),字符流只能处理字符

字节转字符?
“你asd” 计算机底层存储数据的话二进制存储? 按照编码表
一个字符对应一个编号,维持一个映射关系表. ->ASCII ‘a’ = 65,‘A’ = 96.
ASCII :一个字符中7位表示,对应的字节就是 0-XXXXXXX 首位为0
ISO-8859-X:拉丁码表 一个字节中的8位表示 可以表示整数和负数
GBK :常用的中文表示 需要用到两个字节 第一个字节开头是1 第二个字节开头是0 1-XXXXXXX 0-XXXXXXX 2^14次方个.
Unicode :国际标准编码表 全部用两个字节来表示
utf-8 :基于unicode,用一个字节来表示存储数据,在每一个字节头加入了编码信息.

流按角色划分:

节点流:(介质流 Media Stream)也叫做(原始流 Ram Stream)程序直接连接到实际的数据源,和实际的输
入/输出节点连接.
处理流(过滤流):使用节点流作为输入或者输出,对其包装的节点流进行特定处理.达到转换 缓冲的目的.
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43584947/article/details/84587336