首頁  >  問答  >  主體

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 資料檔)?還有什麼方法可以將數據唸出來嗎?

先謝過了!

phpcn_u1582phpcn_u15822713 天前564

全部回覆(1)我來回復

  • 仅有的幸福

    仅有的幸福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)));
    

    回覆
    0
  • 取消回覆