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

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

以下代碼讀取了文件后,整個console里輸出的都是68,但這個文件里只有5個字節(hello),求大神解答是何原因?


package com.imooc;



import java.io.FileInputStream;

import java.io.IOException;

public class IOUtil {

/*

*?

*/

public static void printHex(String fileName)throws IOException{

FileInputStream in=new FileInputStream(fileName);

int b=in.read();

int i=1;

while(b!=-1){

if(b<=0xf){

System.out.println();

}

System.out.print(Integer.toHexString(b)+" ?");

if(i++%10==0){

System.out.println();

}

}

in.close();

}

public class Text {


public static void main(String[] args) {

// TODO Auto-generated method stub

? ? ? ?try {

IOUtil.printHex("C:\\Users\\dell\\Desktop\\io.txt");

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}


}


正在回答

3 回答

你好,你的?printHex()函數寫的有問題,你一開始只讀了一個字節,while循環中b一直是68,不會等于-1,所以一直輸出68,在while循環最后加一句b=in.read();就可以了

public?static?void?printHex(String?fileName)throws?IOException{
		FileInputStream?in=new?FileInputStream(fileName);
		int?b=in.read();
		int?i=1;
		while(b!=-1){
			if(b<=0xf){
				System.out.println();
			}
			System.out.print(Integer.toHexString(b)+"??");
			if(i++%10==0){
				System.out.println();
			}
			b=in.read();
		}
		in.close();
	}


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

假面舞者1874 提問者

非常感謝!
2016-04-06 回復 有任何疑惑可以回復我~

while((b=in.read())!=-1)的意思是循環讀取一個字節,直到所讀取的字節數為-1時,就會結束讀取操作!

0 回復 有任何疑惑可以回復我~

while條件寫錯了。。b=in.read()-1 ?

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

yL_human

b= in.read()!=-1 上面寫錯了
2016-04-05 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

以下代碼讀取了文件后,整個console里輸出的都是68,但這個文件里只有5個字節(hello),求大神解答是何原因?

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

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

幫助反饋 APP下載

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

公眾號

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