补零后,输出出现三位数

来源:4-3 字节流之文件输出流FileOutputStream

lalala321

2016-02-29 15:15

public static void printHexByByteArray(String fileName) throws IOException {
		FileInputStream in=new FileInputStream(fileName);
		byte[] buf=new byte[1*1024];
		int b=in.read(buf, 0, buf.length);
		int j=1;
		for (int i = 0; i < b; 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();
		
	}


写回答 关注

1回答

  • 启铭星
    2016-02-29 17:35:31

    把if的判断条件再限制严格一点,改为 if(buf[i] <= 0xf && buf[i] >= 0x0) 出现3位的都是最高位为1的,被识别为有符号的负数,肯定小于0xf了

文件传输基础——Java IO流

为您介绍IO流的使用,以及对象的序列化和反序列化的内容

133754 学习 · 1030 问题

查看课程

相似问题