2012-11-02 77 views
0

我是新來的文件I/O,所以我很抱歉,如果這是一個非常糟糕的問題。ObjectInputStream [Java]

目前,我有一個附加的方法/主要方法和個人類我的OutputStream在add方法做工精細:這是在方法

 FileOutputStream myFile = null; 
     try { 
      myFile = new FileOutputStream("txt123.txt"); 
     } catch (FileNotFoundException e2) { 
      // TODO Auto-generated catch block 
      e2.printStackTrace(); 
     } 
     ObjectOutputStream oos = null; 
     try { 
      oos = new ObjectOutputStream(myFile); 
     } catch (IOException e1) { 
      // TODO Auto-generated catch block 
      e1.printStackTrace(); 
     } 

的頂部,然後我有這樣的兩倍,因爲有有兩種類型的人可以加入

oos.writeObject(person); 
oos.close(); 
System.out.println("Done"); 

所以我的問題,我如何獲取輸入工作,最後我在哪裏可以把它在add方法或主要方法,我看怎麼做我在這裏完成:http://www.mkyong.com/java/how-to-write-an-object-to-file-in-java/

他還擁有的對象閱讀的指導,但我似乎無法得到它的工作

  • 謝謝!
+2

「似乎無法得到它的工作」不是一個足夠的問題描述。這裏有什麼問題? – EJP

+0

@John Cody沒有在這方面接受答案,請考慮我的答案在下面? – Adam

回答

0

你會讀你就這樣創建的文件:

ObjectInputStream in = 
    new ObjectInputStream(new FileInputStream("txt123.txt")); 
    // terrible file name, because this is binary data, not text 

try{ 

    Person person = (Person) in.readObject(); 

finally{ 
    in.close(); 
} 
0

您可以用ObjectOutputStream與FileOutputStream中結合如下。我也猜測你需要把讀/寫代碼放在一個地方,以便重新使用。下面是一個在DAO中進行讀/寫的簡單示例。

public static class Person implements Serializable { 
    private String name; 
    public Person(String name) { 
     super(); 
     this.name = name; 
    } 
    public String getName() { 
     return name; 
    } 
    @Override 
    public String toString() { 
     return name; 
    } 
} 

public static class PersonDao { 
    public void write(Person person, File file) throws IOException { 
     ObjectOutputStream oos = new ObjectOutputStream(
       new FileOutputStream(file)); 
     oos.writeObject(person); 
     oos.close(); 
    } 

    public Person read(File file) throws IOException, 
      ClassNotFoundException { 
     ObjectInputStream oos = new ObjectInputStream(new FileInputStream(
       file)); 
     Person returnValue = (Person) oos.readObject(); 
     oos.close(); 
     return returnValue; 
    } 
} 

public static void main(String[] args) throws IOException, 
     ClassNotFoundException { 
    PersonDao personDao = new PersonDao(); 
    Person alice = new Person("alice"); 
    personDao.write(alice, new File("alice.bin")); 
    Person bob = new Person("bob"); 
    personDao.write(bob, new File("bob.bin")); 

    System.out.println(personDao.read(new File("alice.bin"))); 
    System.out.println(personDao.read(new File("bob.bin"))); 
} 
相關問題