搜索

首页  >  问答  >  正文

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_u15822752 天前604

全部回复(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
  • 取消回复