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

查看:89
本文介绍了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 数据文件)?还有什么方法将数据读出来吗?

先谢过了!

解决方案

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)));

这篇关于utf-8 - Java 将int型数据用FileWriter写入文件,文件数据错误?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆