1. 程式人生 > >檔案中儲存的是二進位制流

檔案中儲存的是二進位制流

1、所有檔案儲存的都是二進位制流(也就是01資料流),從儲存角度來看,所有檔案都是一樣的,沒有文字檔案,可執行檔案,圖片檔案等之分。
2、操作(包括建立和解析)檔案的工具遵循一種或多種檔案規範,檔案規範比如有JPG檔案規範,PNG檔案規範,ODT檔案規範,Java Class檔案規範,TXT檔案規範,Java原始碼檔案規範,可執行檔案規範,位元組流檔案規範(以位元組為單位,一個位元組又可能採取八進位制,十六進位制等形式,位元組流為展示和互動的基本物件;從某種意義上來說,位元組流檔案規範是某種特殊的文字檔案規範,比如"1111"對應於"f",這其實就是一種特殊的編碼方案,跟文字檔案規範中的GBK,ASCII,UTF-8等編碼方案類似)等等,相應的工具有PhotoShop,圖片檢視器,LibreOffice,javac工具,java工具,Emacs,gcc工具,od(支援位元組流檔案規範,能夠以位元組流的形式檢視檔案),wxHexEditor(支援位元組流檔案規範,能夠以位元組流的形式進行操作)等等。
3、從檔案關聯的操作工具的角度來看,檔案關聯的工具所遵循的檔案規範不同,檔案之間也就有了區別,因而產生了JPG檔案,PNG檔案,ODT檔案,Java Class檔案,TXT檔案,Java原始碼檔案,可執行檔案,位元組流檔案等等檔案種類。
4、檔案被本不關聯的工具操作,在不同情況下會產生不同的結果:
i、非JPG檔案被JPG檔案檢視器檢視。JPG檔案檢視器遵循JPG檔案規範,由於在非JPG檔案中讀取不到JPG檔案規範中要求的元資料,顯示圖片失敗
ii、所有的檔案被支援位元組流檔案規範的工具操作。由於該工具支援位元組流檔案規範,那麼它就直接提取檔案的二進位制資料,並轉換成位元組流的形式進行展示和互動,因而所有檔案都能被操作成功
iii、非普通文字檔案被Emacs檢視。Emacs遵循XML檔案規範,HTML檔案規範,普通文字檔案規範等檔案規範,它會依次去判斷載入檔案匹配哪個檔案規範,至少符合以ASCII編碼方案編碼的普通文字檔案規範(即對於Emacs來說,所有的檔案其實都可以被認為是以ASCII編碼方案編碼的普通文字檔案)

關於檔案和工具的關係如下圖所示: