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也是乱码?
字符不是乱码呢?
int数占四个字节,肯定要从高字节写到低字节,不然解码的时候就读不出来这个数了。乱码应该是你编码的标准和解码的标准不一致
.write()是低8位输入,i是32位,分四次8位,第一行高8位(1)先输入,第二行中八位(2)输入存放在(1)之后,以此类推(1)+(2)+(3)+(4)=i。int乱码应该是你代码的问题无法回答