For example to write an object that can be read by the example in ObjectInputStream: 
FileOutputStream ostream = new FileOutputStream("t.tmp");
ObjectOutputStream p = new ObjectOutputStream(ostream); p.writeInt(12345);
p.writeObject("Today");
p.writeObject(new Date()); p.flush();
ostream.close();

解决方案 »

  1.   

    FileInputStream istream = new FileInputStream("t.tmp");
    ObjectInputStream p = new ObjectInputStream(istream); int i = p.readInt();
    String today = (String)p.readObject();
    Date date = (Date)p.readObject(); istream.close();
      

  2.   

    think in java 里的一个例子
    //: Worm.java
    import java.io.*;class Data implements Serializable {
      private int i;
      Data(int x) { i = x; }
      public String toString() {
        return Integer.toString(i);
      }
    }public class Worm implements Serializable {
      // Generate a random int value:
      private static int r() {
        return (int)(Math.random() * 10);
      }
      private Data[] d = {
        new Data(r()), new Data(r()), new Data(r())
      };
      private Worm next;
      private char c;
      // Value of i == number of segments
      Worm(int i, char x) {
        System.out.println(" Worm constructor: " + i);
        c = x;
        if(--i > 0)
          next = new Worm(i, (char)(x + 1));
      }
      Worm() {
        System.out.println("Default constructor");
      }
      public String toString() {
        String s = ":" + c + "(";
        for(int i = 0; i < d.length; i++)
          s += d[i].toString();
        s += ")";
        if(next != null)
          s += next.toString();
        return s;
      }
      public static void main(String[] args) {
        Worm w = new Worm(6, 'a');
        System.out.println("w = " + w);
        try {
          ObjectOutputStream out =
            new ObjectOutputStream(
              new FileOutputStream("worm.out"));
          out.writeObject("Worm storage");
          out.writeObject(w);
          out.close(); // Also flushes output
          ObjectInputStream in =
            new ObjectInputStream(
              new FileInputStream("worm.out"));
          String s = (String)in.readObject();
          Worm w2 = (Worm)in.readObject();
          System.out.println(s + ", w2 = " + w2);
        } catch(Exception e) {
          e.printStackTrace();
        }
        try {
          ByteArrayOutputStream bout =
            new ByteArrayOutputStream();
          ObjectOutputStream out =
            new ObjectOutputStream(bout);
          out.writeObject("Worm storage");
          out.writeObject(w);
          out.flush();
          ObjectInputStream in =
            new ObjectInputStream(
              new ByteArrayInputStream(
                bout.toByteArray()));
          String s = (String)in.readObject();
          Worm w3 = (Worm)in.readObject();
          System.out.println(s + ", w3 = " + w3);
        } catch(Exception e) {
          e.printStackTrace();
        }
      }
    } ///:~
      

  3.   

    不行
    怎么把这样的对象写入文件?
    public class SQLInfo implements java.io.Serializable {
      private Vector sqlRequestInfo;
      public void addRequestItem(String name, String defination) {
        sqlRequestInfo.addElement(new SQLRequestItem(name, defination));
      }
    }
    因为sqlRequestInfo是Vector的,是复杂型,在写入前进行一些操作(比方执行addRequestItem方法)就出错。
      

  4.   

    你的第二句应该这样写
    private Vector sqlRequestInfo = new Vector();