您的位置:首頁技術文章
文章詳情頁

utf-8 - Java 將int型數據用FileWriter寫入文件,文件數據錯誤?

瀏覽:117日期:2023-12-17 15:03:04

問題描述

(我知道我題目寫得很含糊,因為實在不知道怎么描述了)

事情的起因是,用 Java 開發了一個 Android APP,其中有一個功能是用 FileWriter 將 int 型數據寫入一個數據文件。這個數據文件是用 File 的 createNewFile(String filename) 方法建立的,寫入文件的數據都是 int 型。(FileWriter 的 write(int) 方法)

為了后續處理方便,數據文件中各個數據段使用 4 個 (int)-1 做為分割(寫在每個數據段的前面)。這樣邏輯上來講,這個文件的前 16 個字節應該都是 ff 。但實際上的數據文件是這樣的:

utf-8 - Java 將int型數據用FileWriter寫入文件,文件數據錯誤?

看見熟悉的錕斤拷,像是 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)));

標簽: java
国产综合久久一区二区三区