问答详情
源自:3-1 RandomAccessFile基本操作

关于乱码的写入的问题

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也是乱码?

字符不是乱码呢?

提问者:慕粉1052051344 2017-06-22 17:21

个回答

  • LightlessSky
    2017-06-23 20:11:44

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

  • 慕侠7089565
    2017-06-23 20:01:15

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