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

关于乱码的写入的问题

int i = 0x7fffffff; //最大的整数

//>>>无论左边的数是什么统统用0填充

//用write方法每次只能写一个字节,如果要把i写进去就得写4次

raf.write(i>>>24);//写高8位

raf.write(i>>>16);

raf.write(i>>>8);

raf.write(i);

为什么要从高位开始写入,Java默认使用大端法吗?


写入demo文件的有字符,最大整数和中文,中文乱码我可以理解,为什么取出来的int也是乱码?

字符不是乱码呢?

正在回答

2 回答

int数占四个字节,肯定要从高字节写到低字节,不然解码的时候就读不出来这个数了。乱码应该是你编码的标准和解码的标准不一致

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

.write()是低8位输入,i是32位,分四次8位,第一行高8位(1)先输入,第二行中八位(2)输入存放在(1)之后,以此类推(1)+(2)+(3)+(4)=i。int乱码应该是你代码的问题无法回答

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

举报

0/150
提交
取消

关于乱码的写入的问题

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