为了账号安全,请及时绑定邮箱和手机立即绑定

int型数据读取乱码问题

把int型数据写入了txt文件,按字符串数据读取时出现了乱码,为什http://img1.sycdn.imooc.com//58fdc7be0001137609570371.jpg么?

正在回答

1 回答

因为你写的时候是一个字节一个字节写的,所以读的时候也要一个字节一个字节读。(我不确定是不是这个原因)

两种方式可以正常读到:

1、raf.seek(0)后面的语句改为:

int n = raf.readInt();
System.out.println(raf.getFilePointer());
System.out.println(n);

2、raf.seek(0)后面的语句改为:

byte[] arr = new byte[(int)raf.length()];
raf.read(arr);
int n = (int) (arr[0] << 24|arr[1] << 16 | arr[2] << 8 | arr[3]);
System.out.println(raf.getFilePointer());
System.out.println(n);


0 回复 有任何疑惑可以回复我~
#1

慕粉3230801

第二种方法,在做移位和或操作的时候要注意。 int n = (buf[2]&0xff)<<24|(buf[3]&0xff)<<16|(buf[4]&0xff)<<8|(buf[5]&0xff);
2017-07-13 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

int型数据读取乱码问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信