以下代碼讀取了文件后,整個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();
}
}
}
2016-04-05
你好,你的?printHex()函數寫的有問題,你一開始只讀了一個字節,while循環中b一直是68,不會等于-1,所以一直輸出68,在while循環最后加一句b=in.read();就可以了
2016-07-12
while((b=in.read())!=-1)的意思是循環讀取一個字節,直到所讀取的字節數為-1時,就會結束讀取操作!
2016-04-05
while條件寫錯了。。b=in.read()-1 ?