一個文件里面的內容到底是啥?用慣了Windows的人肯定是看后綴。但是后綴這個東西說改就改,不可靠。所以,最保險的還是把文件類型信息寫到文件里面,通常來說,也就是寫到文件開頭的那幾個字節。這是最方便,最快捷的用來辨別一個文件真實內容的方法。下面舉幾個例子:
          • Java class文件的魔數
          每一個Java Class文件都是以0x CAFEBABE開頭的。Java這么做的原因就是為了快速判斷一個文件是不是有可能為class文件,以及這個class文件有沒有受損(文件受損,文件開頭受損的可能性最大)。
          為什么是CAFEBABE呢?這個只能猜了,首先,16進制里面的字母只有A到F,十分的有限。Java一直以咖啡為代言,CAFEBABE可以認為是 Cafe Babe,讀音上和Cafe Baby很近。所以這個也許就是代表Cafe Baby的意思。

          • 文本文件的BOM
          比如說,對于文本文件,開頭的幾個字節可以叫做BOM(Byte Order Mark),它的作用是用來標記文本文件內部是用的哪種Unicode編碼,以及其字節碼順序。UTF-8,UTF-16BE,UTF-16LE等等各種Unicode編碼都有自己獨一無二的BOM。一般的文本編輯器也都支持 BOM。這樣就不會出現亂碼了。

          • Zip文件的P.K.
          所有的zip文件,都是以PK這兩個字母開頭的。所以,無論怎么去修改zip文件的后綴,解壓程序都可以簡單的判斷一個文件是不是有可能為zip文件。
          不信可以用二進制文本編輯器打開看看,比如notepad++:

          PK代表的不是游戲里的Person Kill,而是zip算法(PKZIP算法)的發明者菲爾·卡茨(Phil Katz)名字首字母的縮寫。
          Phil Katz 在當時也算是個大牛級人物,不想為了一個壓縮軟件付錢就一跺腳自己寫了一個更好的壓縮算法,而且還完全無償開放這個標準。不過,Phil Katz成就了 zip算法,zip算法卻沒有拯救Phil Katz。zip沒有給他帶來一分錢,這位無私奉獻的工程師生活不順,死于酗酒,甚至現在連一張像樣的照片都流傳下來,一聲嘆息呀。
          這是來自wikipedia的一張照片。
          幾個關于他的鏈接:http://en.wikipedia.org/wiki/Phil_Katz,http://www.yeeyan.com/articles/view/35697/15166


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 方正县| 朔州市| 都匀市| 唐山市| 泰来县| 青河县| 马鞍山市| 得荣县| 永州市| 定安县| 凯里市| 岳普湖县| 合肥市| 通榆县| 迁安市| 定西市| 简阳市| 剑河县| 年辖:市辖区| 新闻| 彰化市| 阳春市| 永嘉县| 古交市| 喀什市| 张家港市| 鄂伦春自治旗| 佛山市| 万全县| 龙陵县| 塘沽区| 巧家县| 河西区| 桐柏县| 临桂县| 华亭县| 翁牛特旗| 阿拉善左旗| 宝丰县| 防城港市| 岑巩县|