utf-8 - Java 將int型數據用FileWriter寫入文件,文件數據錯誤?
問題描述
(我知道我題目寫得很含糊,因為實在不知道怎么描述了)
事情的起因是,用 Java 開發了一個 Android APP,其中有一個功能是用 FileWriter 將 int 型數據寫入一個數據文件。這個數據文件是用 File 的 createNewFile(String filename) 方法建立的,寫入文件的數據都是 int 型。(FileWriter 的 write(int) 方法)
為了后續處理方便,數據文件中各個數據段使用 4 個 (int)-1 做為分割(寫在每個數據段的前面)。這樣邏輯上來講,這個文件的前 16 個字節應該都是 ff 。但實際上的數據文件是這樣的:
看見熟悉的錕斤拷,像是 UTF8 編碼錯誤,但是又不是很了解,如果用 write 寫入的 int 為什么會有編碼錯誤,又不是將 String 寫入文件。
所以請教一下大家,這種情況應該怎么辦(純 int 數據文件)?還有什么方法將數據讀出來嗎?
先謝過了!
問題解答
回答1:FileWrite的Write(int)方法 無法寫入純int文件的 因為這里的int實際上是char字符,當你的int數據在unicode碼表里找不到對應的char值時就會出現亂碼的。你可以提供一個toString方法轉成字符串想寫入真正的int數據
File file = new File('b.txt');FileWriter fw = new FileWriter(file);fw.write((Integer.toString(87)));
