若是如今没有txt文件,让你设计最简单的txt实现,你会如何作呢? 编码
直接写硬盘? spa
显然这样很差。姑且不说这样会频繁地形成中断,并且若是咱们保存的时候也会是一个难题。是保存成ANSI仍是UTF8仍是Unicode呢?若是一开始直接写硬盘,默认的格式是ANSI,那到时咱们须要save as的时候,硬盘的调整操做量就大了。因此,第一,不要直接写硬盘,先保存在内存里面。即使到时你须要save as成别的格式,操做也是先在内存中操做,而后依次写硬盘。 设计
固然,上面的实现最简单的txt只是个引子,是为了引出咱们文章的主题:编码。 code
txt实现有一个中间态,这个状态是由实现者提供,总体数据模型相似以下: 内存
write: input
input --> 中间态 --> ANSI it
--> UTF8 程序
---> UNICODE 数据
read: 文件
存储数据 ->
程序须要制定编码方式,若不指定,则由程序经过存储数据中的一些标志位进行猜想,猜想后选择编码方式 ->
经过编码把存储数据进行解析,读入内存 ->
显示