為什么不能補(bǔ)零,上個(gè)例子為什么就可以
?while((bytes = in.read(buf,0,buf.length))!=-1){
? if(bytes <= 0xf){
? System.out.print("0");
? }
? for(int i = 0 ; i < bytes;i++){
? System.out.print(Integer.toHexString(buf[i] & 0xff)+"? ");
? if(j++%10==0){
? System.out.println();
? }
? }
? }
2015-07-08
在這個(gè)程序里,你的這個(gè)變量bytes=in.read(buf,0,buf.length),得到的是讀取的字節(jié)個(gè)數(shù)。用它去判斷是否小于等于15(bytes<=oxf)是沒(méi)有意義的。應(yīng)該是在for循環(huán)內(nèi)通過(guò)判斷if(buf[i]<=oxf)單個(gè)字節(jié)是否小于等于15才有意義。
你說(shuō)前面的可以,可能你用的是bytes=in.read();這是每次讀取一個(gè)字符,當(dāng)然可以。
請(qǐng)記清楚,int?bytes = in.read(buf,0,buf.length)和int?bytes=in.read()是完全不同的概念。所以老師其實(shí)在例子用的變量都是int b=in.read()。
2018-01-12
public static void printHexByByteArrayMethod2(String fileName) throws IOException{
FileInputStream in = new FileInputStream(fileName);
byte[] buf = new byte[8*1024];
int bytes=0;
int j=1;
while((bytes=in.read(buf, 0, buf.length))!=-1){
for(int i=0;i<bytes;i++){
if((buf[i]&0xff)<=0xf){
System.out.print("0");
}
System.out.print(Integer.toHexString(buf[i] & 0xff)+"? ");
if(j++%10==0){
System.out.println();
}
}
}
}
2015-05-18
我沒(méi)找到你說(shuō)的上個(gè)例子是那個(gè),是否需要補(bǔ)0應(yīng)該還是根據(jù)需求做的