JavaRush /Java Blog /Random-TW /位元組. 我們從文件中讀到什麼?
Roman
等級 33

位元組. 我們從文件中讀到什麼?

在 Random-TW 群組發布
一般來說,這是針對初學者的資訊。當談到從文件中讀取資訊時,問題就出現了:如果文件包含字母,那麼為什麼我們要以字節的形式從中讀取數字?在這種情況下,字節是什麼?什麼是字節這裡已經寫得很好了。但是,讀完之後,關於將字母轉換為數字的機制的問題仍然存在,所以我不得不在互聯網上深入挖掘。因此,下面寫的內容也算是補充。電腦將每個檔案儲存為由二進位形式的零和一組成的資訊。每個文件實際上是彼此跟隨的位元組的集合。通常,有兩種類型的信息文件:文字文件和二進位。該文字檔案包含一組典型的人類可讀字符,我們可以在任何文字編輯器中開啟它。二進位檔案由我們在日常生活中不習慣操作的字元組成;因此,需要一個特殊的程式來讀取它們。文字檔案由字母、數字和其他常見字元組成。此類檔案的副檔名為 .txt、.py、.csv 等。當我們打開這樣的檔案時,我們會看到組成單字的常用字元集。儘管實際上該內容並不是以這種形式儲存在電腦內部的。它以位元的形式存儲,即0或1。在各種編碼表中,ASCII、UNICODE或每個字元的其他值都以二進位形式定義。因此,如果一個位元組可以容納 256 個字符,則每個字符都有自己的零和一的二進位編碼(八個連續寫入的零或一給出一個字符)。因此,當檔案開啟時,文字編輯器會將每個 ASCII 值轉換為熟悉的字符,並以其通常的形式顯示。例如,數字 65 的 ASCII 碼的二進位形式為 1000001,它將在文件中顯示為拉丁文(不是西里爾字母。西里爾字母從位置 192 開始)字母「A」。也就是說,在 ASCII 系統中,值為 1000001 的位元組對應於拉丁字母“A”的值。檔案的每一行都有自己的換行符號 – EOL(行尾)。通常這個字元(兩個字元)是“\n”(ASCII 中的二進位值:00001010)。讀取這樣的字元後,程式將其解釋為該行的末尾並過渡到下一行。還有其他類似的「功能符號」。二進位檔案與文字檔案一樣,都以二進位形式存儲,但它們沒有「附加」到對其進行解碼的程序,即不存在 ASCII 類型的解密表。基本上,這類文件的內容是圖片、音頻和視頻,而這些文件又是其他文件的壓縮版本,例如自執行檔(.exe)。這些檔案(二進位)在通常意義上是人類無法讀取的,因此嘗試使用傳統的文字編輯器來打開它們將顯示一堆無法理解的垃圾。因此,需要產生特殊程式來正確讀取此類檔案。二進位檔案也儲存為一系列字節,但在這種情況下,即使更改一位也可能使整個檔案不可讀。ASCII字元表可以在這裡查看。因此,當我們讀取檔案時,8個字元(1或0)被讀入位元組變量,然後可以透過記事本等程式將其轉換為可讀字元。 幫助我弄清楚的 來源。
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION