自己練習(xí)時(shí)的問題
這里提前將b = in.read();為什么會(huì)是一個(gè)死循環(huán)
public?static?void?printHex(String?fileName)?throws?IOException{ ??//讀取指定文件內(nèi)容,按16進(jìn)制輸出到控制臺 ??//并且每輸入10個(gè)字節(jié),換行 ??FileInputStream?in?=?new?FileInputStream(fileName); ?????int?b?=?in.read()?; ??int?i?=?1;?//換行使用 ??while(b?!=?-1){ ???System.out.print(Integer.toHexString(b)+"??"); ???if(i++%10?==?0){ ????System.out.println(); ???} ??} ??in.close();?// }
2015-04-20
放前面的話只read了一次,如果文件有內(nèi)容,b的值永遠(yuǎn)都是第一次讀的值,不可能是-1,要想循環(huán)必須將in.read()寫到while循環(huán)后的括號中。