public static void printHexByByteArray(String fileName) throws IOException{
FileInputStream in = new FileInputStream(fileName);
byte[] buf = new byte[20 * 1024];
int bytes = in.read(buf,0,buf.length);//一次性读完,说明字节数组足够大
int j = 1; //定义一个j来计数
//i < bytes 因为没有读到最后,所以是这样写
for (int i = 0; i < bytes; i++) {
if (buf[i] <= 0xf) { //个位数补0
System.out.print("0");
}
System.out.print(Integer.toHexString(buf[i] & 0xff)+" ");
if (j++ % 10 == 0) { //每输出10个byte换行
System.out.println();
}
}输出结果所有的都加了0,而不是只有一位数的才加0,为什么

数组中有负数,所有必须避免负数