1. 程式人生 > >文字檔案和二進位制檔案判定

文字檔案和二進位制檔案判定

現在我有一個小說檔案:完美世界.txt。它是文字檔案,我把它字尾改了,變成:完美世界.avi。那麼其實它還是一個文字檔案,你照樣可以用記事本開啟它。
我個人認為可以這樣判定一個檔案是不是文字檔案:”如果一個檔案可以用文字編輯軟體開啟(如記事本、notepad++,vim等),並且總會有至少一個編碼方式(編碼方式如ascii、ansi、gbk2312、utf8)使它沒有亂碼,那麼它就是文字檔案“。
從上面的判定看,對於簡單的java檔案我們並不能確定它是文字檔案還是二進位制檔案。例入,我有一個檔案test。沒錯,它沒有後綴,它裡面的二進位制內容是:‭01101000011001010110110001101100‬
可能有人說了,你都說了二進位制內容是。。。。說明它就是二進位制檔案啊?此話錯誤,因為任何檔案在計算機上都是以二進位制存放的。所以任何計算機上的檔案都可以以0101。。。。這兩個數字表示出來。
而對於test的讀取:
1.我直接用二進位制讀,它就是01101000011001010110110001101100‬,至於這個有什麼用,我不知道,也許是一個暗號呢?誰知道呢?
2.我可以用記事本開啟,發現它是一個單詞 hello ,奧,原來這個檔案存的是一個單詞啊。
3.我覺得它是一個整數,我用計算器看看這個整數是多少,發現它是1751477356,這麼大一個數。
所以我認為:一個檔案肯定是二進位制檔案,至於它是不是文字檔案,那要看作者在它裡面存放了什麼內容,如果放的是一個最影,那麼肯定用記事本開啟是亂碼,當然它也不是文字檔案,如果放的是一本小說,一封信。。。若用記事本開啟,發現人是可讀的,那麼就是文字檔案。
下面就截圖看看test檔案裡到底放的什麼:
以文字編緝器開啟


以十六進位制編緝器開啟
十六進位制對應的二進位制換算成十進位制整數
至於它到底是什麼,看作者的意圖了

相關推薦

文字檔案二進位制檔案判定

現在我有一個小說檔案:完美世界.txt。它是文字檔案,我把它字尾改了,變成:完美世界.avi。那麼其實它還是一個文字檔案,你照樣可以用記事本開啟它。 我個人認為可以這樣判定一個檔案是不是文字檔案:”如果一個檔案可以用文字編輯軟體開啟(如記事本、notepad+

python file模組中的文字檔案二進位制檔案以及字串byte的理解

大前提:文字檔案和二進位制檔案都是以二進位制的方式存放到硬碟中的 看圖先~ 1. Python file讀寫加不加b w 開啟一個檔案只用於寫入。如果該檔案已存在則開啟檔案,並從開頭開始編輯,即原有內容會被刪除。如果該檔案不存在,建立新檔案。 wb

文字檔案二進位制檔案的區別聯絡

  今天閒來無事,也學一下別人寫一下部落格:   在一些專案中常遇到一些檔案的操作,今天就總結一下。或許自己寫一寫,把思路縷一縷,反正沒什麼事情;   下面我在*.txt檔案中寫了下面一段文字: abcABCzgm張國敏 其實它真正在硬碟中寫入的是(可以通過UltraEdit

文字檔案二進位制檔案在儲存時的區別

1、二進位制檔案是把記憶體中的資料按其在記憶體中的儲存形式原樣輸出到磁碟上存放,也就是說存放的是資料的原形式。 2、文字檔案是把資料的終端形式的二進位制資料輸出到磁碟上存放,也就是說存放的是資料的

文字檔案二進位制檔案的差異區別

轉自:https://blog.csdn.net/colourful_sky/article/details/80334250 廣義上的二進位制檔案包括文字檔案,這裡討論的是狹義上的二進位制檔案與文字檔案的比較: 能儲存的資料型別不同 文字檔案只能儲存c

文字檔案二進位制檔案區別

1)文字檔案:這類檔案以文字的ASCII碼形式儲存在計算機中。它是以"行"為基本結構的一種資訊組織和儲存方式。  2)二進位制檔案:這類檔案以文字的二進位制形式儲存在計算機中,使用者一般不能直接讀懂它們,只有通過相應的軟體才能將其顯示出來。二進位制檔案一般是可執行程式、圖形、

文字檔案二進位制檔案操作01(C)

現有一個二進位制檔案 E81_data.bin,其中儲存了 20 個整數, 請將檔案儲存至 C 盤根目錄下的 cdata 資料夾。 編寫程式 完成如下功能: (1) 編寫一個函式, 讀取出這些整數。 (2) 編寫一個函式,對所有整數按照從小到大排序。 (3) 編寫一個函式,

文字檔案二進位制檔案操作03(C)

現有一個二進位制檔案 E83_data.bin,檔案中包含了若干學生資訊, 請將檔案儲存至 C 盤根目錄下的 cdata 資料夾。其中學生資訊結構如下: struct _student { char ID[15]; // 學號 char name[20]; // 姓名 int

fopen,文字檔案二進位制檔案

暮鼓集    行走集 在學習C語言檔案操作後,我們都會知道開啟檔案的函式是fopen,也知道它的第二個引數是標誌字串。其中,如果字串中出現’b’,則表明是以開啟二進位制(binary)檔案,否則是開啟文字檔案。 那麼甚麼是文字檔案,甚麼是二進位

C/C++讀寫文字檔案二進位制檔案

//採用CPP模式讀取txt void TextRead_CPPmode() { fstream f; f.open("txt_out.txt",ios::in); //檔案開啟方式選項: // ios::in    = 0x01, //供讀,檔案不存在則建立(ifstream預設的開啟方式) /

java中如何判斷一個檔案二進位制檔案還是文字檔案

現在的做法是把檔案讀進來,逐個解析每一個byte,如果有一個byte<0那麼斷定這個檔案是二進位制的,這在純英文的環境下可以工作,但是如果一個文字包含了中文字元,那麼這個檔案也會被判斷為二進位制檔案。 我在網上看看到有人也是逐個比較每一個byte,只不過是如果有一個b

二進位制檔案ASCII檔案有何區別

二進位制檔案和ASCII檔案(即文字檔案)的區別,對於和計算機親近時間尚短的同學是個難題。本文用簡單的例子,試圖展示其中的道道,希望能對菜鳥們有些幫助。1、一個例子:兩種100000  有程式:#include<iostream> using namespace

淺談C語言中文字檔案二進位制檔案

C語言中,按檔案中的資料組織形式來分,資料檔案可分為ASCII碼檔案(即文字檔案)和二進位制檔案。 文字檔案在磁碟中存放時每個字元對應一個位元組,用於存放對應的ASCII碼。 二進位制檔案把資料按其在記憶體中的儲存形式存放在磁碟上,一個位元組並不一定對應一個字元。 對於A

nodejs使用multer中介軟體上傳混合表單提交(檔案檔案普通文字域)

我的一個表單包括幾個input(type=’text’)普通的文字域和input(type=’file’),兩者同屬一個表單,form設定enctype=’multipart/form-data’。需要混合上傳,savePoster是儲存檔案邏輯,save是儲存

HTML5新特性之檔案二進位制資料的操作

歷史上,JavaScript無法處理二進位制資料。如果一定要處理的話,只能使用charCodeAt()方法,一個個位元組地從文字編碼轉成二進位制資料,還有一種辦法是將二進位制資料轉成Base64編碼,再進行處理。這兩種方法不僅速度慢,而且容易出錯。ECMAScript5引入了Blob物件,允許直接操作二進位制

判斷檔案二進位制檔案還是文字檔案的函式

#include "sys/stat.h" bool IsTextFile(const char * strFileName) { if(strFileName==NULL) return false; struct stat f_stat; if(stat(strFi

文字檔案二進位制檔案、Unicode字元編碼

從網上找到一篇文章, 寫的挺基礎, 通俗易懂的, 和大家分享:     現在搞懂了文字檔案與二進位制檔案之間的關係啦. 我們可以利用二進位制編輯器檢視文字檔案. 上圖紅框中的左邊是十六進位制顯示的,右邊是文字(ascii 在程式中有這麼一句: 開始我不明白為什麼要寫

文字檔案二進位制檔案的大小, Unicode/utf-8/ansi編碼格式

今天看別人寫的程式, 有一點不是很明白, 就是在mfc的程式中利用CFile在寫檔案時是怎麼區別二進位制檔案和文字檔案的. 首先說一下二進位制檔案和文字檔案的區別: 從網上找到一篇文章, 寫的挺基礎, 通俗易懂的, 和大家分享: 現在搞懂了文字檔案與二進位制檔案之間

tornadofx拖拽顯示文字檔案圖片檔案

class DragFile : View("drag and drop") { val dragFileModel = DragFileModel(this) lateinit var ap: FlowPane override val root = vbox {

Windows批處理檔案(.bat檔案.cmd檔案)介紹以及簡單使用

首先說一下cmd檔案和bat檔案的區別,從檔案描述中的區別是,cmd檔案叫做:Windows命令指令碼,bat檔案叫:批處理檔案,兩者都可以使用任意一款文字編輯器進行建立、編輯和修改,只是在cmd中支援的命令要多於bat。 批處理檔案是一種沒有什麼固定格式的檔案,他可以處理一條或者多條命令,