第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

為什么把0xfffffff寫(xiě)進(jìn)去后,讀出來(lái)是亂碼?

import?java.io.*;

public?class?Test?{
	public?static?void?main(String[]?args)throws?Exception{
		File?file?=?new?File("test/test.txt");
		RandomAccessFile?raf?=?new?RandomAccessFile(file,?"rw");
		
		//寫(xiě)入文件
		int?i?=?0x7fffffff;
		raf.write(i?>>>?24);
		raf.write(i?>>>?16);
		raf.write(i?>>>?8);
		raf.write(i);
		
		//從文件讀取
		raf.seek(0);
		byte[]?b?=?new?byte[4];
		raf.read(b);
		String?s?=?new?String(b,"utf-16be");//utf-16be換成項(xiàng)目默認(rèn)的編碼,讀出來(lái)也是亂碼
		System.out.println(s);
		
		raf.close();
	}
}

運(yùn)行結(jié)果:

http://img1.sycdn.imooc.com//54ffa58d0001f23807610093.jpg

期待的效果是讀出“2147483647”這個(gè)數(shù)字,即0x7fffffff的十進(jìn)制表示。那么代碼該怎么修改呢??



還有一個(gè)問(wèn)題:無(wú)符號(hào)右移運(yùn)算符>>>換成右移運(yùn)算符>>應(yīng)該也可以吧?


正在回答

3 回答

使用:System.out.println(raf.readInt());

就可以讀出你想要的數(shù)了。

1 回復(fù) 有任何疑惑可以回復(fù)我~

?System.out.println(Arrays.toString(b));

輸出為:[127, -1, -1, -1]

0 回復(fù) 有任何疑惑可以回復(fù)我~

應(yīng)該讀不出數(shù)字,因?yàn)槟銓?xiě)進(jìn)去的時(shí)候也不是這些數(shù)字。你可以把移位后的值輸出來(lái)看看。

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

sprnate 提問(wèn)者

什么叫做“把移位后的值輸出來(lái)看看”? 把i(即0x7fffffff)分四次寫(xiě)入,最終就是完整地把這個(gè)整型值寫(xiě)入文件啊。后來(lái)發(fā)現(xiàn)用RandomAccessFile的readInt()方法其實(shí)是可以讀出該數(shù)字來(lái)的。但我想問(wèn)的是為什么直接打開(kāi)寫(xiě)入的.txt文檔會(huì)是空白(在Eclipse打開(kāi)是亂碼)?
2015-03-13 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

為什么把0xfffffff寫(xiě)進(jìn)去后,讀出來(lái)是亂碼?

我要回答 關(guān)注問(wèn)題
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)