您的位置:首页技术文章
文章详情页

utf-8 - Java 将int型数据用FileWriter写入文件,文件数据错误?

【字号: 日期:2023-12-17 15:03:04浏览:40作者:猪猪

问题描述

(我知道我题目写得很含糊,因为实在不知道怎么描述了)

事情的起因是,用 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