关于读取字节的问题

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

春暖不开花

2016-01-04 21:28

老师说每次读取字节的时候读取的是低八位的。那如果一个int变量,高八位不全是0,那读出来的字节数据岂不是就是错误的了。

关于这个一直挺困惑,请大神解答。

写回答 关注

2回答

  • Its_forever
    2016-01-04 22:14:01
    已采纳

    Java 中的一个byte,其范围是-128~127的,如果不进行&0xff,那么当一个byte会转换成int时,对于负数,会做位扩展,举例来说,一个byte的-1(即0xff),会被转换成int的-1(即0xffffffff ), 那么转化出的结果就不是我们想要的了。 
    而0xff默认是整形,所以,一个byte跟0xff相与会先将那个byte转化成整形运算,结果的高24位就会被清0,这是我们想要的结果。

     看看这篇博客吧,http://makemyownlife.iteye.com/blog/1047717

    很好的解答了你的问题。希望能帮到你。

    Its_fo... 回复春暖不开花

    哈哈,挺好。加油,共勉。

    2016-01-05 12:59:02

    共 4 条回复 >

  • 产品经理不是经理
    2016-01-04 22:19:05

    每次读低八位,并不代表剩下的不读啊。

    春暖不开花

    恩,是的,之前是我有个地方没想通。

    2016-01-05 00:05:58

    共 1 条回复 >

文件传输基础——Java IO流

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

133754 学习 · 1030 问题

查看课程

相似问题