序列化对象:
package com.chen.seriaizable;
import java.io.Serializable;import java.util.List;
@SuppressWarnings("serial")public class Student implements Serializable{ private String name; private String id; private int age; private List students;
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public String getId() { return id; }
public void setId(String id) { this.id = id; }
public int getAge() { return age; }
public void setAge(int age) { this.age = age; }
public List getStudents() { return students; }
public void setStudents(List students) { this.students = students; }
@Override public String toString() { StringBuffer stringBuffer = new StringBuffer(); stringBuffer.append("id:" + this.id).append("\n"); stringBuffer.append("name:" + this.name).append("\n"); stringBuffer.append("age:" + this.age).append("\n"); return stringBuffer.toString(); }}
package com.chen.seriaizable;
import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.util.ArrayList;import java.util.List;
public class SaveStudent{ private Student student; // 序列化文件保存位置 private String path = "C:/student.Serializable"; public void writeStudent() { List students = new ArrayList(); student = new Student(); Student student1 = new Student(); student1.setAge(1); student1.setId("1"); student1.setName("张1"); students.add(student1); Student student2 = new Student(); student2.setAge(2); student2.setId("2"); student2.setName("张2"); students.add(student2); Student student3 = new Student(); student3.setAge(3); student3.setId("3"); student3.setName("张3"); students.add(student3); Student student4 = new Student(); student4.setAge(4); student4.setId("4"); student4.setName("张4"); Student student41 = new Student(); student41.setAge(41); student41.setId("41"); student41.setName("张41"); List students4 = new ArrayList(); students4.add(student41); student4.setStudents(students4); students.add(student4);
student.setAge(500); student.setId("100"); student.setName("张A000"); student.setStudents(students); try { ObjectOutputStream objectOutputStream = new ObjectOutputStream(new FileOutputStream(path)); objectOutputStream.writeObject(student); objectOutputStream.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("写完"); } public void readStudent() { try { ObjectInputStream objectInputStream = new ObjectInputStream(new FileInputStream(path)); student = (Student) objectInputStream.readObject(); System.out.println(student.getAge()); objectInputStream.close(); } catch (Exception e) { e.printStackTrace(); } System.out.println("读完"); } @Override public String toString() { readStudent(); StringBuffer stringBuffer = new StringBuffer(100); studentToString(stringBuffer, student); return stringBuffer.toString(); } public void studentToString(StringBuffer stringBuffer, Student studentObj) { if (student != null) { stringBuffer.append("id:" + studentObj.toString()).append("\n"); if (studentObj.getStudents() != null) { stringBuffer.append("\n[\n"); for (Student bean : studentObj.getStudents()) { studentToString(stringBuffer, bean); } stringBuffer.append("\n]\n"); } } }
}
测试类:
package com.chen.seriaizable;
public class Test{ /** * @param args */ public static void main(String[] args) { SaveStudent saveStudent = new SaveStudent(); // 1 先执行写入文件// saveStudent.writeStudent(); // 2 再读取 System.out.println(saveStudent); System.out.println("读完"); }
}