以下代碼讀取了文件后,整個(gè)console里輸出的都是68,但這個(gè)文件里只有5個(gè)字節(jié)(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()函數(shù)寫(xiě)的有問(wèn)題,你一開(kāi)始只讀了一個(gè)字節(jié),while循環(huán)中b一直是68,不會(huì)等于-1,所以一直輸出68,在while循環(huán)最后加一句b=in.read();就可以了
2016-07-12
while((b=in.read())!=-1)的意思是循環(huán)讀取一個(gè)字節(jié),直到所讀取的字節(jié)數(shù)為-1時(shí),就會(huì)結(jié)束讀取操作!
2016-04-05
while條件寫(xiě)錯(cuò)了。。b=in.read()-1 ?