自己練習時的問題
這里提前將b = in.read();為什么會是一個死循環
public?static?void?printHex(String?fileName)?throws?IOException{ ??//讀取指定文件內容,按16進制輸出到控制臺 ??//并且每輸入10個字節,換行 ??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了一次,如果文件有內容,b的值永遠都是第一次讀的值,不可能是-1,要想循環必須將in.read()寫到while循環后的括號中。