關(guān)于亂碼的寫入的問(wèn)題
int i = 0x7fffffff; //最大的整數(shù)
//>>>無(wú)論左邊的數(shù)是什么統(tǒng)統(tǒng)用0填充
//用write方法每次只能寫一個(gè)字節(jié),如果要把i寫進(jìn)去就得寫4次
raf.write(i>>>24);//寫高8位
raf.write(i>>>16);
raf.write(i>>>8);
raf.write(i);
為什么要從高位開始寫入,Java默認(rèn)使用大端法嗎?
寫入demo文件的有字符,最大整數(shù)和中文,中文亂碼我可以理解,為什么取出來(lái)的int也是亂碼?
字符不是亂碼呢?
2017-06-23
int數(shù)占四個(gè)字節(jié),肯定要從高字節(jié)寫到低字節(jié),不然解碼的時(shí)候就讀不出來(lái)這個(gè)數(shù)了。亂碼應(yīng)該是你編碼的標(biāo)準(zhǔn)和解碼的標(biāo)準(zhǔn)不一致
2017-06-23
.write()是低8位輸入,i是32位,分四次8位,第一行高8位(1)先輸入,第二行中八位(2)輸入存放在(1)之后,以此類推(1)+(2)+(3)+(4)=i。int亂碼應(yīng)該是你代碼的問(wèn)題無(wú)法回答