亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

請問,為什么是一個整數來裝讀到的字節流呢?一個字節8位,一個整數32位,從低位裝起的話,最多也只能裝4個呀?如果字節數組超過4個,多余的怎么辦呢?等到下一次再裝么?

public?static?void?printHexByByteArray(String?fileName)?throws?IOException{
		FileInputStream?in=new?FileInputStream(fileName);
		byte[]?buf=new?byte[8*1024];
		//為什么是一個整數來裝讀到的字節流呢?一個字節8位,一個整數32位,從低位裝起的話,最多也只能裝4個呀?如果字節數組超過4個,多余的怎么辦呢?等到下一次再裝么?
		int?bytes=in.read(buf,?0,?buf.length);
		int?j=1;
		for(int?i=0;i<bytes;i++){
			if(buf[i]<=0xf){
				System.out.print("0");
			}
			System.out.print(Integer.toHexString(buf[i])+"?");
			if(j++%10==0){
				System.out.println();
			}
		}
/*		while((bytes=in.read(buf,?0,?buf.length))!=-1){
			for(int?i=0;i<bytes;i++){
				//為何下面的判斷,會讓雙位數也加零
				if(buf[i]<=0xf){
					System.out.print("0");
				}
				System.out.print(Integer.toHexString(buf[i]?&?0xff)+"?");
				if(j++%10==0){
					System.out.println();
				}
			}
		}*/
		in.close();
	}

另外,為何while體中的判斷單字節語句,運行下來,雙字節也加了“0”?

正在回答

1 回答

讀到的字節流是byte[] 數組裝 , 而不是 int bytes這個整型變量來裝,bytes 返回的是讀取到的字節個數

1 回復 有任何疑惑可以回復我~
#1

小羊愛主 提問者

非常感謝!
2015-07-28 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

請問,為什么是一個整數來裝讀到的字節流呢?一個字節8位,一個整數32位,從低位裝起的話,最多也只能裝4個呀?如果字節數組超過4個,多余的怎么辦呢?等到下一次再裝么?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號