實例分析:例3:保存所有的Person對象到文件並以對象的方式讀出來 – JAVA編程語言程序開發技術文章

1 問題分析

本題中需要對文件讀,寫對象數據,需要使用到與對象有關的流ObjectInputStream/ObjectOutputStream。

2 使用對象的讀寫流

ObjectOutputStream用於將一個對象輸出,輸出對象使用的方法為writeObject(Object obj)

ObjectInputStream用於讀取一個對象,讀取對象使用的方法為readObject()

註意: 被讀寫的對象必須是已序列化的類的對象,即要實現要Serializable接口。

3 編寫代碼

[java]
import java.io.*; 
import java.util.*; 
 
class Person implements Serializable { 
    String name = null; 
 
    public Person(String s) { 
        name = s; 
    } 
 
    public String toString() { 
        return name; 
    } 

 
public class TestObjectStream { 
    public static void main(String[] args) { 
        ObjectOutputStream oos = null; 
        ObjectInputStream ois = null; 
        try { 
            File f = new File("date.ser"); 
            oos = new ObjectOutputStream(new FileOutputStream(f)); 
            oos.writeObject(new Person("andy")); 
            oos.close(); 
 
            ois = new ObjectInputStream(new FileInputStream(f)); 
            Person d = (Person) ois.readObject(); 
            System.out.println(d); 
            ois.close(); 
        } catch (Exception e) { 
            e.printStackTrace(); 
        } 
    } 

import java.io.*;
import java.util.*;

class Person implements Serializable {
 String name = null;

 public Person(String s) {
  name = s;
 }

 public String toString() {
  return name;
 }
}

public class TestObjectStream {
 public static void main(String[] args) {
  ObjectOutputStream oos = null;
  ObjectInputStream ois = null;
  try {
   File f = new File("date.ser");
   oos = new ObjectOutputStream(new FileOutputStream(f));
   oos.writeObject(new Person("andy"));
   oos.close();

   ois = new ObjectInputStream(new FileInputStream(f));
   Person d = (Person) ois.readObject();
   System.out.println(d);
   ois.close();
  } catch (Exception e) {
   e.printStackTrace();
  }
 }
}

4 編譯運行

javac TestObjectStream.java

java TestObjectStream

 

摘自 java教程

發佈留言