问答详情
源自:4-2 字节流之文件输入流FileInputStream-2

单个读取和按数组读取前面加0的显示问题

printHex()

printHexByteByByte()

跟老师写的是一样的,为什么到第二个方法里的是否是一位数的判断,

出来的结果是这样的:

0d 0a 0a1 0a1 0a1 0a1 0bb 0ad 20 2d 

20 47 2e 45 2e 4d 2e 20 0b5 0cb 

0d7 0cf 0c6 0e5 0d 0a 0d 0a 0a1 0a1 

0a1 0a1 0b4 0ca 0a3 0ba 47 2e 45 2e 

4d 2e 20 0b5 0cb 0d7 0cf 0c6 0e5 0d 

0a 0d 0a 0a1 0a1 0a1 0a1 0c7 0fa 0a3 

0ba 47 2e 45 2e 4d 2e 20 0b5 0cb 

0d7 0cf 0c6 0e5 20 


提问者:helloworld2008 2016-07-20 16:27

个回答

  • 小丑鱼yang
    2016-07-24 17:01:06
    已采纳

    f(buf[i]<=0xf)这句有问题的!这里buf[i]是byte类型,虽然比较的时候会自动变成int,但是如果它的最高位是1的话,它始终都是负数!只需要在判断的时候再加上判断为正即可if(buff[i] <= 0xf && buff[i] >= 0)

  • 竹叶青_0002
    2016-07-21 15:03:58

    我的也是,不知道咋回事

  • BlueBlueSkyZ
    2016-07-20 21:52:23

    System.out.println(Integer.toHexString(buf[i] & 0xff) + " ");是不是这句话有问题