当前位置:编程学习 > JAVA >>

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

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教程
补充:软件开发 , Java ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,