用writeObject(),写进去了几个序列化的对象后,我再读取,怎么判断读完了呢还有就是我如果向同一个文件里写进了多个对象,然后再读取的时候是不是要按写的顺序挨个读取啊
谢谢

解决方案 »

  1.   

            我记得不错的话,应该read返回值为-1时,表示读完。
            还有几个对象写入一个文件,你会假如不是一个Stream写入的话,每个列前面都会有几个几个字节的标志符之类的东西。需要跳过的。
      

  2.   

    FileInputStream fis = new FileInputStream("dat.txt");
    ObjectInputStream ois = new ObjectInputStream(fis);
    int i = ois.read();
    while(i != -1){
        System.out.println((Person)ois.readObject());
        i = ois.read();
    }你是指这样吗?但这样,我试了下,并没有输出啊,
    我跟了下,i一开始就直接是-1了
      

  3.   

    个人认为把对象写入文件,不妨试下把对象先加到集合Set ,List,Map,再将集合写入文件。这样就比较好操作。如果你连续写入两个对象,可能读取时会出现流腐败现象。
      

  4.   

    就是说无法像read返回-1这样很直接的判断?
      

  5.   

    应当是这样的:
     
     int i = 0;
    while((i = ois.read())!= -1){       
        System.out.println((Person)ois.readObject()); 
        i = ois.read(); 
      

  6.   

    现在是我写进去了,但是调用read()的时候直接就返回-1了