我用printByByteArray方法,字節數組不足夠大怎么也是讀取整個文件?
?public static void printByByteArray(String fileName)throws IOException{
??FileInputStream in=new FileInputStream(fileName);
??byte[] buf=new byte[10];
//??int b=in.read(buf, 0, buf.length);
//??int i=1;
//??for(int j=0;j<b;j++){
//???if(buf[j]<=0xf){
//????System.out.print("0");
//???}
//???System.out.print(Integer.toHexString(buf[j])+"? ");
//???if(i++%10==0){
//????System.out.println();
//???}
//??}
//??in.close();
??int b=0;
??int i=1;
??while((b=in.read(buf, 0, buf.length))!=-1){
???for(int j=0;j<b;j++){
????if((buf[j] & 0xff)<=0xf){
?????System.out.print("0");
????}
????System.out.print(Integer.toHexString(buf[j] & 0xff)+"? ");
????if(i++%10==0){
?????System.out.println();
????}
???}
??}
??in.close();
?}
2017-04-16
一直循環著讀,比如你寫的byte為10,while循環讀取輸出一次,返回不是-1再次進入循環,知道in.read(buf, 0, buf.length)這個方法讀到文件最后,這個方法返回-1,循環結束。
這種模式不是一直讀最后輸出,而是讀一點,然后輸出,在讀一點