(我知道我题目写得很含糊,因为实在不知道怎么描述了)
事情的起因是,用 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)));