序列化对象:
复制代码代码如下:
paquete com.chen.seriaizable;
importar java.io.Serializable;
importar java.util.List;
@SuppressWarnings("serie")
clase pública Estudiante implementa Serializable
{
nombre de cadena privada;
identificación de cadena privada;
edad privada;
lista privada<Estudiante> estudiantes;
cadena pública getName()
{
nombre de retorno;
}
setName público vacío (nombre de cadena)
{
this.nombre = nombre;
}
cadena pública getId()
{
identificación de devolución;
}
setId vacío público (ID de cadena)
{
this.id = identificación;
}
público int getAge()
{
edad de retorno;
}
setAge público vacío (edad int)
{
this.age = edad;
}
Lista pública<Estudiante> getEstudiantes()
{
estudiantes que regresan;
}
public void setStudents(Lista<Estudiante> estudiantes)
{
this.students = estudiantes;
}
@Anular
cadena pública a cadena ()
{
StringBuffer stringBuffer = nuevo StringBuffer();
stringBuffer.append("id:" + this.id).append("/n");
stringBuffer.append("nombre:" + this.name).append("/n");
stringBuffer.append("age:" + this.age).append("/n");
devolver stringBuffer.toString();
}
}
复制代码代码如下:
paquete com.chen.seriaizable;
importar java.io.FileInputStream;
importar java.io.FileOutputStream;
importar java.io.IOException;
importar java.io.ObjectInputStream;
importar java.io.ObjectOutputStream;
importar java.util.ArrayList;
importar java.util.List;
clase pública SaveStudent
{
estudiante estudiante privado;
// 序列化文件保存位置
ruta de cadena privada = "C:/student.Serializable";
escritura vacía públicaEstudiante()
{
Lista<Estudiante> estudiantes = new ArrayList<Estudiante>();
estudiante = nuevo Estudiante();
Estudiante estudiante1 = nuevo Estudiante();
estudiante1.setAge(1);
estudiante1.setId("1");
estudiante1.setName("张1");
estudiantes.add(estudiante1);
Estudiante estudiante2 = nuevo Estudiante();
estudiante2.setAge(2);
estudiante2.setId("2");
estudiante2.setName("张2");
estudiantes.add(estudiante2);
Estudiante estudiante3 = nuevo Estudiante();
estudiante3.setAge(3);
estudiante3.setId("3");
estudiante3.setName("张3");
estudiantes.add(estudiante3);
Estudiante estudiante4 = nuevo Estudiante();
estudiante4.setAge(4);
estudiante4.setId("4");
estudiante4.setName("张4");
Estudiante estudiante41 = nuevo Estudiante();
estudiante41.setAge(41);
estudiante41.setId("41");
estudiante41.setName("张41");
Lista<Estudiante> estudiantes4 = new ArrayList<Estudiante>();
estudiantes4.add(estudiante41);
estudiante4.setEstudiantes(estudiantes4);
estudiantes.add(estudiante4);
estudiante.setAge(500);
estudiante.setId("100");
estudiante.setName("张A000");
estudiante.setEstudiantes(estudiantes);
intentar
{
ObjectOutputStream objectOutputStream = nuevo ObjectOutputStream(nuevo FileOutputStream(ruta));
objectOutputStream.writeObject(estudiante);
objectOutputStream.close();
}
captura (IOException e)
{
// TODO Bloque de captura generado automáticamente
e.printStackTrace();
}
System.out.println("写完");
}
lectura pública vacía Estudiante()
{
intentar
{
ObjectInputStream objectInputStream = nuevo ObjectInputStream(nuevo FileInputStream(ruta));
estudiante = (Estudiante) objectInputStream.readObject();
System.out.println(estudiante.getAge());
objectInputStream.close();
}
captura (Excepción e)
{
e.printStackTrace();
}
System.out.println("读完");
}
@Anular
cadena pública a cadena ()
{
leerEstudiante();
StringBuffer stringBuffer = nuevo StringBuffer(100);
estudianteToString(stringBuffer, estudiante);
devolver stringBuffer.toString();
}
StudentToString público vacío (StringBuffer stringBuffer, Student StudentObj)
{
si (estudiante! = nulo)
{
stringBuffer.append("id:" + StudentObj.toString()).append("/n");
si (studentObj.getStudents()! = nulo)
{
stringBuffer.append("/n[/n");
para (bean estudiante: StudentObj.getStudents())
{
estudianteToString(stringBuffer, frijol);
}
stringBuffer.append("/n]/n");
}
}
}
}
测试类:
复制代码代码如下:
paquete com.chen.seriaizable;
prueba de clase pública
{
/**
* argumentos @param
*/
principal vacío estático público (String [] argumentos)
{
SaveStudent saveStudent = nuevo SaveStudent();
// 1 先执行写入文件
// saveStudent.writeStudent();
// 2 再读取
System.out.println(guardarEstudiante);
System.out.println("读完");
}
}