Java对象串行化实例

来源:互联网 发布:java web应用 编辑:程序博客网 时间:2024/05/22 10:53

1.StudentList.java:

/**
 *
 * @author lucifer
 */


package JavaSerializable;


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


public class StudentList implements Serializable{
     Vector list = new Vector(6);

     public StudentList(){}

     public void addStudent(String name){
          if(name != null)
               list.addElement(name);
     }

     public void listStudent(){
          for(int i = 0;i < list.size();i++){
               System.out.println("Student" + i + ":" + (String)list.elementAt( i ) + "<br>");
          }
     }
}



2.StudentListApplication.java:


/**
 *
 * @author lucifer
 */


package JavaSerializable;


import java.io.*;

public class StudentListApplication {
     public StudentListApplication(){}

     public void buildStudentList(StudentList list){
          list.addStudent("Bob Robinson");
          list.addStudent("Steve Robinson");
          list.addStudent("Rob Stevinson");
          list.addStudent("Tod Thomson");
          list.addStudent("Jack Jones");
          list.addStudent("Micheal Jackson");
     }

     public void putStudentList(StudentList list){
          try{
               ObjectOutputStream os =
                       new ObjectOutputStream(new FileOutputStream("student.dat"));
               os.writeObject( list );

               os.flush();
               os.close();
          }
          catch(IOException e){
               System.out.println(e.getMessage());
          }
     }

     public StudentList getStudentList(){
          StudentList list = null;
          try{
               ObjectInputStream is = new ObjectInputStream(new FileInputStream("student.dat"));
               list = (StudentList)is.readObject();

               is.close();
          }
          catch(Exception e){
               System.out.println(e.getMessage());
          }
          if(list != null)
               return list;
          else
               return null;
     }

     public void invoke(){
          StudentList list = new StudentList();
          buildStudentList(list);

          System.out.println("Before Serializable:<br>");
          list.listStudent();
          putStudentList(list);

          System.out.println("After Serializable:<br>");
          StudentList inlist = getStudentList();
          if(inlist != null)
               inlist.listStudent();
          else
               System.out.println("Read Failed!");

          try{
               System.out.println("Press enter to quit");
               System.in.read();
          }
          catch(Exception e){
               System.err.println(e.getMessage());
          }
     }

     public static void main(String[] args){
          StudentListApplication sla = new StudentListApplication();
          sla.invoke();
     }

}

原创粉丝点击