(我知道我題目寫得很含糊,因為實在不知道怎麼描述了)
事情的原因是,用 Java 開發了一個 Android APP,其中有一個功能是用 FileWriter 將 int 型資料寫入一個資料檔。這個資料檔案是用 File 的 createNewFile(String filename) 方法建立的,寫入檔案的資料都是 int 型。 (FileWriter 的 write(int) 方法)
為了後續處理方便,資料檔案中各個資料段使用 4 個 (int)-1 做為分割(寫在每個資料段的前面)。這樣邏輯上來講,這個檔案的前 16 個位元組應該都是 ff 。但實際上的資料檔是這樣的:
#看見熟悉的錟斤拷,像是 UTF8 編碼錯誤,但是又不是很了解,如果用 write 寫入的 int 為什麼會有編碼錯誤,又不是將 String 寫入檔案。
所以請教一下大家,這種情況該怎麼辦(純 int 資料檔)?還有什麼方法可以將數據唸出來嗎?
先謝過了!
仅有的幸福2017-05-17 10:00:09
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)));