请问在JAVA里读ObjectInputStream流里面的数据时如何知道整型对象,浮点型对象,字符对象等对象所占的字节数呢?然后进行跳过这些长度读取下面的数据呢?
问题一:如何知道整型,浮点型等对象在流里面所占的字节数?
问题二:跳过读取数据
问题三:有什么好的建议实现在流里面进行随意读取数据呢?
谢谢各位!!

解决方案 »

  1.   


    正解。数据是你写入的,你按照写入的顺序读取出来就对了。
    否则,你就整个对象写入,整个读取,让Java自己折腾去。
      

  2.   

    例如我写入的数据是日期对象,我想读第二条数据,也就是说跳过前一条数据,那要知道一条数据的字节数(例子中指日期对象的字节数)才可以使用Skip来跳啊,那对象如何算字节?
      

  3.   

    在流中只能顺序取,不能跳过,这不是数组而是一个管道,管道前面的东西没出来,后面的是不可能读到的!
    一般你都必须知道流中的数据合法长度,有时我们刻意的约定读大数据的时候,先发4个字节组成一个int来表示接下来存在管道中大数据的字节数,然后按量读取,这样来达到精确控制的能力
      

  4.   

    如果不能跳读,那JAVA提供的流API --- skip()和skipBytes()干嘛用?
      

  5.   

    我现在知道基本类型怎么跳,就例如int型,现在我机器是4B,我就可以这样跳读下一条记录Skip(4),但如果记录里面有日期和字符串,那计算B就不知道怎么算了,例如我存入的时候是oos.writeInt(12345);oos.writeObject(new Date());oos.writeObject("sssrrrr"); 那我要算B的时候是4+?+?呢??请大家指点一下,谢谢了啊!!!
      

  6.   

    你想实现跳读的话,可以使用RandomAccessFile类,此类使用户可以用之来严格处理文件!