小羊爱主
2015-07-18 18:08
public static void printHexByByteArray(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]<=0xf){ System.out.print("0"); } System.out.print(Integer.toHexString(buf[i] & 0xff)+" "); if(j++%10==0){ System.out.println(); } } } in.close(); } }
0xff 是16位的 你这相当于是对 8位能表示的数据做了8位扩展,即buf[i]如果是00000001 & 0xff =0x01 自然就多了一个0
文件传输基础——Java IO流
133754 学习 · 1030 问题
相似问题