9. 数据流, 内存流, IO流, 文本流

1.数据流

2.内存流

3.IO流

4.文本流


1.数据流

数据流表示一个"连续的, 有序的字节序列", 从一个点流向另一个点; 游戏开发中, 任何数据的传输都是数据流, 比如:

a.从硬盘读取一个角色模型到内存

b.将玩家的得分从客户端发送到服务器

c.将游戏设置保存到配置文件

所有这些数据的移动, 都可以称为"数据流"; 数据流是老爸, 内存流, IO流, 文本流都是它的儿子, 各有所长

2.内存流

内存流也是一种数据流, 但它的源头和目的地都在内存(RAM)1).核心特点: 速度极快, 由于完全在内存中, 避免了缓慢的磁盘IO或网络延迟

2).游戏开发中的使用

a.资源解压/解密

- 从硬盘(IO流)读取一个被压缩或加密的纹理文件

- 将这个文件的数据读入一个内存流

- 在内存流中进行快速的解压/解密操作

- 将处理好的, 可以直接使用的数据从内存流送给显卡

b.网络数据包组装/解析

- 发送一个玩家的数据(位置, 动作, 状态), 将这些零散的数据包打包成一个完整的网络包

- 创建一个内存流, 依次将各种数据写入其中, 组装成一个完整的字节数组

- 最后, 将这个内存流的数据通过网络(IO流)一次性发出去; 接收端则反向操作, 从网络IO流收到数据后, 放入内存流进行

解析

3).简单比喻:

IO流是从仓库(硬盘)运货到工厂(内存), 而内存流是在工厂内部的不同车间之间用传送带快速传送半成品

3.IO流

IO流是"输入/输出流"的简称, 它描述的是"数据在内存和外部设备(如硬盘, 光盘, 网络等)之间的流动"

1).核心: 跨越了内存和外部世界的边界

I(Input/输入): 从外部流向内存, 比如从硬盘读取数据

O(Output/输出): 从内存流向外部, 比如向硬盘写入数据

2).游戏开发中的例子

a.加载游戏: 从硬盘(外部)读取存档文件、场景资源到内存(内部), 这是输入流

b.保存游戏: 将内存中的玩家数据(等级、装备、位置)写入到硬盘的存档文件中, 这是输出流

c.联网对战: 将你的操作数据发送给服务器(输出流), 并从服务器接收其他玩家的数据(输入流)

一句话总结: IO流是内存与外部世界(硬盘、网络)的桥梁, 负责数据的持久化和交换

4.文本流

文本流属于IO流的子集, 基于字节流封装; 它的工作流程如下:

a.底层通过字节流读取磁盘中的二进制字节(文本文件本质是按编码存储的字节)

b.自动将字节转换为对应编码的字符(如UTF-8的字节转成中文/英文)

c.向上层提供"按字符读写"的便捷接口(ReadLine()读一行文本)

在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值