文件中是89 9b 9a de,我用DataInputStream readInt出来后,为什么还是0x899b9ade?
难道不是应该是de9a9b89吗? 
debug时其实stream中是0xde9a9b89.但是readInt出来就变回去了,谁能帮忙解释一下?DataInputstream好像也没有设置大尾小尾的api...

解决方案 »

  1.   

    debug时其实stream中是0xde9a9b89
    应该不会吧,你的DataInputStream包装的是什么输入流
    readInt只是简单地从输入流中取4字节拼成一个INT并没做特殊处理
      

  2.   

    回ls,包装的是FileInputStream。您这一说,难道是因为各自倒转了一次?
      

  3.   

    忘了忘了,昨天debug今天就忘了,debug时候stream里面顺序没变,还是file原来的顺序  我面壁去了。。  sorry
      

  4.   

    FileInputStream的话用的是系统API的int read(int fd,void *buf,int count) 
    返回BUF的顺序是跟文件一样的,所以觉得奇怪流里怎么会倒过来了
    而DataInputStream读INT时
    直接是
    ((第一个字节 << 24) + (第二个字节&0xFF << 16) + (第三个字节&0xFF << 8) + (第四个字节&0xFF << 0))
    得到的INT与文件内容的是一致的