序列化物件:
複製程式碼如下:
包 com.chen.seriaizable;
導入 java.io.Serialized;
導入java.util.List;
@SuppressWarnings(“串列”)
公共類學生實現可序列化
{
私有字串名稱;
私有字串 ID;
私有整數年齡;
私人名單<Student>學生;
公有字串 getName()
{
返回名稱;
}
公有無效setName(字串名稱)
{
this.name = 名稱;
}
公有字串 getId()
{
返回id;
}
公共無效setId(字串id)
{
這個.id = id;
}
公有 int getAge()
{
返回年齡;
}
公無效setAge(int年齡)
{
this.age = 年齡;
}
公共清單 <Student> getStudents()
{
回國學生;
}
public void setStudents(List<Student> 學生)
{
this.students = 學生;
}
@覆蓋
公有字串 toString()
{
StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append("id:" + this.id).append("/n");
stringBuffer.append("名稱:" + this.name).append("/n");
stringBuffer.append("年齡:" + this.age).append("/n");
返回 stringBuffer.toString();
}
}
複製程式碼如下:
包 com.chen.seriaizable;
導入 java.io.FileInputStream;
導入 java.io.FileOutputStream;
導入java.io.IOException;
導入 java.io.ObjectInputStream;
導入 java.io.ObjectOutputStream;
導入java.util.ArrayList;
導入java.util.List;
公共課SaveStudent
{
私人學生;
// 序列化檔案儲存位置
私有字串路徑 = "C:/student.Serializable";
公共無效寫學生()
{
List<Student> Students = new ArrayList<Student>();
學生=新學生();
學生student1 = new Student();
學生1.setAge(1);
學生1.setId(“1”);
Student1.setName("張1");
學生.add(student1);
學生student2 = new Student();
學生2.setAge(2);
Student2.setId("2");
Student2.setName("張2");
學生.add(student2);
學生student3 = new Student();
Student3.setAge(3);
Student3.setId("3");
Student3.setName("張3");
學生.add(student3);
學生student4 = new Student();
學生4.setAge(4);
Student4.setId("4");
Student4.setName("張4");
學生student41 = new Student();
學生41.setAge(41);
Student41.setId("41");
Student41.setName("張41");
List<學生> Students4 = new ArrayList<學生>();
學生4.add(student41);
Student4.setStudents(students4);
學生.add(student4);
學生.setAge(500);
學生.setId(“100”);
Student.setName("張A000");
學生.setStudents(學生);
嘗試
{
ObjectOutputStream objectOutputStream = new ObjectOutputStream(new FileOutputStream(path));
objectOutputStream.writeObject(學生);
objectOutputStream.close();
}
捕獲(IOException e)
{
// TODO 自動產生的 catch 區塊
e.printStackTrace();
}
System.out.println("寫入完成");
}
公共無效readStudent()
{
嘗試
{
ObjectInputStream objectInputStream = new ObjectInputStream(new FileInputStream(path));
學生 = (學生) objectInputStream.readObject();
System.out.println(student.getAge());
objectInputStream.close();
}
捕獲(異常 e)
{
e.printStackTrace();
}
System.out.println("讀完");
}
@覆蓋
公有字串 toString()
{
讀學生();
StringBuffer stringBuffer = new StringBuffer(100);
StudentToString(stringBuffer, 學生);
返回 stringBuffer.toString();
}
公共無效studentToString(StringBuffer stringBuffer,學生studentObj)
{
如果(學生!= null)
{
stringBuffer.append("id:" + StudentObj.toString()).append("/n");
if (studentObj.getStudents() != null)
{
stringBuffer.append("/n[/n");
for (學生 bean:studentObj.getStudents())
{
StudentToString(stringBuffer, bean);
}
stringBuffer.append("/n]/n");
}
}
}
}
測試類別:
複製程式碼如下:
包 com.chen.seriaizable;
公開課測試
{
/**
* @參數參數
*/
公共靜態無效主(字串[]參數)
{
SaveStudent saveStudent = new SaveStudent();
// 1 先執行寫入文件
// saveStudent.writeStudent();
// 2 重新讀取
System.out.println(saveStudent);
System.out.println("讀完");
}
}