goback add

实例分析:例3:保存所有的Person对象到文件并以对象的方式读出来

2315 点击·0 回帖
灯火互联
楼主


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


喜欢0 评分0