第二個軟件是有些人比較常用的軟件:記事本。
記事本軟件的英文名是notepad
,用這兩個名字在Windows搜索框搜索就能夠打開。有些人會喜歡用記事本來寫一些文字,保存之後得到的文件擴展名是.txt
。當然另外一些人可能更喜歡用word來寫文字,其文件擴展名是.doc
或者.docx
。
本文不是討論電腦寫字問題,而是通過記事本軟件來學習文件內容的分類與編輯。
計算機上的所有數據都是以二進制形式存在的。當軟件讀取文件時,不管是讀取.docx
文件,還是.txt
文件,都是讀取瞭一些0101
的二進制數據,看上去是沒有什麼差別的。文件拓展名隻是文件表面上的分類,上一篇文章我們知道擴展名是可以隨便改的。文件內容才是文件實質的東西。
根據文件內容,文件可以分成文本文件(text file) 和 二進制文件(binary file) 兩大類。
實踐上,記事本可以幫助我們區分這一點。將任何一個文件拖到記事本中,就會顯示這個文件的內容,如果顯示的文件內容全部是文字,就是文本文件。如果顯示瞭一大堆奇怪的黑色記號,即表明這些並不是有效的文字信息,則是二進制文件。
.txt
文件和.docx
文件都可以用來寫字,本質的區別是什麼呢?熟悉兩個軟件的人很容易發現,記事本和word的本質不同是,記事本寫字是不包含文字的字體,字號,顏色等信息的,即無格式的。而word則可以調各種格式,word文件為瞭保存這些額外的信息,不得不用更多的二進制數據來存儲,因此寫同樣字數的文字,docx
文件總是要比.txt
文件大得多。
我們將隻由純文字組成的文件稱為文本文件,其他任何文件都稱為二進制文件。
在上述定義下,我們不難發現,主流的編程語言源代碼文件,比如.cpp, .py, .tex
等,都是文本文件。很顯然,大部分編程確實也隻需要文字就可以瞭。這些文件都可以拖到記事本中編輯,因而理論上講,隻用記事本就可以做所有的代碼編輯工作。
而我們常用的圖像、音視頻文件,辦公三件套.docx, .pptx, .xlsx
文件,PDF文件等等,都是二進制文件。
前面講的文件資源管理器隻能對文件整體進行操作,如果要修改文件內容,則需要另外的軟件。我們將修改文件內容的過程叫做編輯(edit),將編輯文件所使用的軟件叫做編輯器(editor)。
文本文件的編輯器,當然就叫文本編輯器。記事本就是一個最簡單的文本編輯器。由於文本文件文件完全是由文字構成的,是人類可以看得懂的,我們對於文本文件的編輯,也不過就是插入、添加、刪除幾個文字而已,理論上說任何一款文本編輯都能夠勝任這個編輯工作。但是想要高效進行文本編輯工作,這需要一些高級功能來減少重復性的工作,這就是不同高級文本編輯器的價值所在瞭。
幾乎所有的代碼文件都是文本文件,所以任何一款文本編輯器都能夠進行任何的編程工作。所以請轉變思維,不要再抱著課堂上講的幾個古董編程工具故步自封瞭,你會有更高效的編輯器,更加舒適的寫代碼體驗。 想要實現這一點,你隻需要意識到一件事:所有的代碼都是文本文件,都能夠通過文本編輯器來編輯它們。然後就是尋找和學習文本編輯器的事情瞭,這將在以後的章節提到。
二進制文件的編輯呢?二進制文件是人類不可讀的,即使是純文字的.docx
文件,它用word打開之後你看得懂,但是如果要從字節流上去提取文字的字體和大小顏色等信息,我想你絕對做不到。因此才有瞭word這個軟件將其可視化,並且讓你也可以通過可視化編輯的方式來修改它。
二進制文件並沒有共性,我們通常是對一種文件開發一種可視化的閱讀器和編輯器來進行閱讀和編輯活動。當然你可能會有一些選擇,比如.docx
可以用word打開,也可以用wps打開,但是絕對沒有文本文件的選擇那麼多樣,並且也可能隨著軟件的迭代而出現兼容性問題。
一個文本文件,無論多少年以後,肯定還有文本編輯器能夠輕易打開。但是一種二進制文件,在許多年之後,配套的閱讀器和編輯器還存不存在就很難說瞭。
文本文件和二進制文件的區分似乎很無聊,其實也確實很無聊。寫本文的目的,就是為瞭不斷復讀這句話:幾乎所有的代碼文件都是文本文件,都能夠通過文本編輯器來編輯。
下一篇