序列化对象:
复制代码代码如下 :
paquet com.chen.seriaable ;
importer java.io.Serialisisable ;
importer java.util.List ;
@SuppressWarnings("série")
classe publique L'étudiant implémente Serialisable
{
nom de chaîne privé ;
identifiant de chaîne privé ;
âge int privé ;
étudiants privés de liste<Student> ;
chaîne publique getName()
{
renvoyer le nom ;
}
public void setName (nom de la chaîne)
{
this.name = nom ;
}
chaîne publique getId()
{
renvoyer l'identifiant ;
}
public void setId (identifiant de chaîne)
{
this.id = identifiant;
}
public int getAge()
{
âge de retour;
}
public void setAge (int âge)
{
this.age = âge;
}
liste publique<Étudiant> getStudents()
{
retourner les étudiants;
}
public void setStudents(List<Student> étudiants)
{
this.students = étudiants ;
}
@Outrepasser
chaîne publique versString()
{
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();
}
}
复制代码代码如下 :
paquet com.chen.seriaable ;
importer java.io.FileInputStream ;
importer java.io.FileOutputStream ;
importer java.io.IOException ;
importer java.io.ObjectInputStream ;
importer java.io.ObjectOutputStream ;
importer java.util.ArrayList ;
importer java.util.List ;
classe publique
{
étudiant privé;
// 序列化文件保存位置
chemin de chaîne privé = "C:/student.Seriallessly" ;
public void writeStudent()
{
List<Student> étudiants = new ArrayList<Student>();
étudiant = nouvel étudiant ();
Étudiant student1 = new Student();
étudiant1.setAge(1);
étudiant1.setId("1");
student1.setName("张1");
étudiants.ajouter (étudiant1);
Étudiant student2 = new Student();
étudiant2.setAge(2);
étudiant2.setId("2");
student2.setName("张2");
étudiants.ajouter (étudiant2);
Étudiant student3 = new Student();
étudiant3.setAge(3);
étudiant3.setId("3");
student3.setName("张3");
étudiants.ajouter (étudiant3);
Étudiant student4 = new Student();
étudiant4.setAge(4);
étudiant4.setId("4");
student4.setName("张4");
Étudiant student41 = new Student();
étudiant41.setAge(41);
étudiant41.setId("41");
student41.setName("张41");
List<Étudiant> étudiants4 = new ArrayList<Étudiant>();
étudiants4.add(étudiant41);
étudiant4.setÉtudiants(étudiants4);
étudiants.ajouter (étudiant4);
étudiant.setAge(500);
étudiant.setId("100");
student.setName("张A000");
étudiant.setStudents(étudiants);
essayer
{
ObjectOutputStream objectOutputStream = new ObjectOutputStream(new FileOutputStream(path));
objectOutputStream.writeObject (étudiant);
objectOutputStream.close();
}
attraper (IOException e)
{
// TODO Bloc catch généré automatiquement
e.printStackTrace();
}
System.out.println("写完");
}
public void readStudent()
{
essayer
{
ObjectInputStream objectInputStream = new ObjectInputStream(new FileInputStream(path));
étudiant = (Étudiant) objectInputStream.readObject();
System.out.println(student.getAge());
objectInputStream.close();
}
attraper (exception e)
{
e.printStackTrace();
}
System.out.println("读完");
}
@Outrepasser
chaîne publique versString()
{
readÉtudiant();
StringBuffer stringBuffer = nouveau StringBuffer(100);
étudiantVersChaîne(stringBuffer, étudiant);
return stringBuffer.toString();
}
public void studentToString (StringBuffer stringBuffer, Student studentObj)
{
si (étudiant != null)
{
stringBuffer.append("id:" + studentObj.toString()).append("/n");
si (studentObj.getStudents() != null)
{
stringBuffer.append("/n[/n");
pour (Bean Student : studentObj.getStudents())
{
studentToString(stringBuffer, bean);
}
stringBuffer.append("/n]/n");
}
}
}
}
测试类:
复制代码代码如下 :
paquet com.chen.seriaable ;
Test de classe publique
{
/**
* @param arguments
*/
public static void main (String[] arguments)
{
SaveStudent saveStudent = new SaveStudent();
// 1 先执行写入文件
// saveStudent.writeStudent();
// 2 再读取
System.out.println(saveStudent);
System.out.println("读完");
}
}