當我向二進制文件寫入數字時,它不會顯示。但是在一個角色的情況下,它確實如此。爲什麼?你將如何檢查包含字符的文件是否是二進制文件?檢查文件數據是否爲二進制文件
回答
它與你如何解釋文件中的內容有關。文件中的所有內容都是二進制的,字符是整數等。
當您在文件(或CAT或任何操作系統具有)的控制檯上執行TYPE時,文件的內容默認會被解釋爲文本,因爲程序員類型的決定寫它那樣。
當您編寫程序讀取文件中的數據時,由您決定如何解讀數據。
這就是爲什麼你只能猜測文件內容,這就是爲什麼經常使用文件擴展名來提示內容應該如何解釋的提示。
所以我看到了ASCII字符,因爲它們被記事本解釋爲字符(每個1 BYTE)。如果是整數(int),則其長度爲4 BYTE。 – Gates127 2010-04-23 01:01:53
@ Gates127 - 如果您想將整數作爲文本讀取,您可能不希望將整數寫入文件 - 您希望將該整數的文本表示寫入文件。這是(使用你的數字),而不是寫入值12,345,678(4字節),你想寫「12345678」(8字節)。 – Damovisa 2010-04-23 01:05:30
我想我明白了,一個整數被保存爲4個字節,它可能不存在於ASCII表中,所以記事本無法解釋它。而ASCII字符的範圍是從0到255. – Gates127 2010-04-23 01:15:11
我想你真正要問的是你(個人)是否可以解釋文件中的內容。
正如安德斯所提到的那樣,通常可以將文件讀取爲文本,而不管其內容是什麼 - 然而,這些字符可能沒有意義。
假設你正在編寫軟件來執行這項任務,或許下面(高級別)算法將幫助:
- 創建你找到文本
- 讀取文件可接受的字符的列表,將其解釋爲ASCII
- 如果文件中的任何字符不在列表中,則失敗。
- 對要處理的任何文本編碼(ASCII,UTF-x等)重複步驟2和3
- 如果沒有任何內容通過,則不是文本。
這有幫助嗎?
好的,我相信我可以回答你的問題。數字在記事本中顯示爲垃圾的原因是因爲您保存了一個整數值 - 保存ascii代碼爲0-9,其中包含時髦的字符與它們相關聯。保存一個字符時,它會保存該字符的實際ASCII值(它將字符視爲一個轉換爲其ASCII值的數字),然後該字符將顯示爲您希望看到的字符。
另一種方式把它是:
int(1) = 1
而
int('A') = 65
如何看它們之間的區別到編譯器?
- 1. 如何檢查文件是否是二進制文件?
- 2. 如何檢查上傳的文件是否是二進制文件?
- 3. STLloader和three.js - 如何檢查文件是二進制文件?
- 4. 如何檢查字符串是否在二進制文件
- 5. 用Node.js檢查文件是二進制文件還是ASCII文件?
- 6. 將原始文件(二進制數據)轉換爲XML文件
- 7. ç打開文件來檢查它是否是二進制的,如果是這樣打印是二進制
- 8. 如何檢查Vim插件中PATH中是否存在二進制文件?
- 9. 二進制數據到PDF文件
- 10. 寫大二進制數據到文件
- 11. 追加二進制數據文件
- 12. 寫回數據到二進制文件
- 13. 將二進制數據寫入文件
- 14. 寫的字符串二進制數據的二進制文件
- 15. 檢測文件是二進制還是純文本?
- 16. 爲什麼二進制NPM文件有兩個檢查
- 17. 檢查文件是否完成複製
- 18. 是否可以查看一個和零個二進制文件?
- 19. 如何檢查lldb是否可以附加到二進制文件?
- 20. 如何檢查新的systemd用戶是否有權執行二進制文件
- 21. 如何檢索二進制文件的二進制版本號
- 22. 從二進制文件中檢索contentType
- 23. 如何看到一個文件是否爲cvs中的二進制文件
- 24. 我們是否需要部署二進制文件+(pdb文件+ xml文件)?
- 25. 檢查文件是否被進程文件句柄鎖定
- 26. 將二進制數據(例如二進制文件)導出爲.NET字符串?
- 27. 從二進制文件,無感人物檢索數據
- 28. 存儲和檢索數據庫中的二進制文件(fpt)
- 29. 將二進制數據文件包含到APK文件中
- 30. 複製二進制文件
您如何查看數據以確定其顯示方式? – 2010-04-23 00:49:27
用於檢測文件是ASCII文本還是二進制文件(至少具有某種程度的置信度),請參閱此問題:http://stackoverflow.com/questions/277521/how-to-identify-the-file-content-is -in-ascii-or-binary#277538 – 2010-04-23 00:49:56
@Michael我正在使用記事本來查看它。 – Gates127 2010-04-23 00:51:44