若是如今沒有txt文件,讓你設計最簡單的txt實現,你會如何作呢? 編碼
直接寫硬盤? spa
顯然這樣很差。姑且不說這樣會頻繁地形成中斷,並且若是咱們保存的時候也會是一個難題。是保存成ANSI仍是UTF8仍是Unicode呢?若是一開始直接寫硬盤,默認的格式是ANSI,那到時咱們須要save as的時候,硬盤的調整操做量就大了。因此,第一,不要直接寫硬盤,先保存在內存裏面。即使到時你須要save as成別的格式,操做也是先在內存中操做,而後依次寫硬盤。 設計
固然,上面的實現最簡單的txt只是個引子,是爲了引出咱們文章的主題:編碼。 code
txt實現有一箇中間態,這個狀態是由實現者提供,總體數據模型相似以下: 內存
write: input
input --> 中間態 --> ANSI it
--> UTF8 程序
---> UNICODE 數據
read: 文件
存儲數據 ->
程序須要制定編碼方式,若不指定,則由程序經過存儲數據中的一些標誌位進行猜想,猜想後選擇編碼方式 ->
經過編碼把存儲數據進行解析,讀入內存 ->
顯示