为什么两种方法的输出结果不同

来源:4-2 字节流之文件输入流FileInputStream-2

沙滩贝壳

2017-08-04 19:34

http://img.mukewang.com/59845b920001a31607180283.jpg

http://img.mukewang.com/59845b920001951c09170060.jpg

http://img.mukewang.com/59845b9300014f5b07250354.jpg

http://img.mukewang.com/59845b9300016fe907550060.jpg

输出结果不同

写回答 关注

3回答

  • _哦
    2017-08-05 16:01:23
    已采纳

    把Integer.toHexString(b)这个改成Integer.toHexString(b & 0xff)就一样了。

    沙滩贝壳

    非常感谢!

    2017-08-09 10:07:10

    共 1 条回复 >

  • Lx_21
    2018-06-12 08:40:24

    这个还有一个问题,单位数补0,不然会得到更加奇怪的答案

    if(buf[i]<=0xf) {

    System.out.print("0");

    }

    这样读取出来结果好像有问题。

    按照你的代码应该这样写

    if(bytes<=0xf) {

    System.out.print("0");

    }


  • nize1989
    2017-08-21 20:46:43

    老师讲错了,一定要在数组输出法的输出格式里面加上按位与操作 System.out.print(Integer.toHexString(buf[i]& 0xff)+" "); 不然得不到相同结果

文件传输基础——Java IO流

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

133754 学习 · 1030 问题

查看课程

相似问题