你这样可能不行,需要将readObject(...), writeObject(...)改写.

解决方案 »

  1.   

    readObject()不就可以从文件中读取一个对象,并返回一个OBJECT引用吗?
      

  2.   

    readObject(...), writeObject(...)是告诉系统怎么去读写一个InitRecord, 不能等同于stream的同名方法.
      

  3.   

    那为什么如果只写一个对象,在用readObject()来读就可以呢?
      

  4.   

    这是写的代码,如果把FileOutputStream(....)变为FileOutputStream(..., true)就会产生上面读的错误,这是怎回事呢?难道对象只能在流不关闭的情况下一次写如吗?
    package File;import java.io.ObjectOutputStream;
    import java.io.BufferedOutputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    /**
     * Created by IntelliJ IDEA.
     * User: DeceitLei
     * Date: 2003-5-27
     * Time: 9:43:35
     * To change this template use Options | File Templates.
     */
    public class writeRecord
    {
    public ObjectOutputStream write(InitRecord record)
    {
    ObjectOutputStream objectOut = null; try
    {
    objectOut = new ObjectOutputStream(
                    new BufferedOutputStream(
                            new FileOutputStream("records.bin")));
                                objectOut.writeObject(record);
    }
    catch (IOException e)
    {
    e.printStackTrace();
    System.exit(1);
    }               return objectOut;
    }
    }
      

  5.   

    你的writeRecord就是只写一个啊.
      

  6.   

    你这样可能不行,需要将readObject(...), writeObject(...)改写.
    ===========>
    不好意思,在这种情况下,你不需要改写,因为Hashtable和Vector都是Serializable的.但如果你有不能Serializable的数据,你就需要自己写了.
      

  7.   

    难道我写一个再写一个用FileOutputStream(..,true)的方式避免擦掉以前的文件的方法不行吗?写能写进去,可读的时候就出问题了
      

  8.   

    static void write(OutputStream out, Vector objects) throws Exception {
      for(int i = 0; i < objects...; i++) {
         out.writeObject(objects.elementAt(i));
      }
    }