序列化对象:
复制代码代码如下:
pacote com.chen.seriaizable;
importar java.io.Serializable;
importar java.util.List;
@SuppressWarnings("serial")
classe pública Aluno implementa Serializable
{
nome da string privada;
id de string privado;
idade interna privada;
lista privada<Aluno> alunos;
String pública getNome()
{
nome de retorno;
}
public void setName(Nome da string)
{
este.nome = nome;
}
String pública getId()
{
identificação de retorno;
}
public void setId(ID da string)
{
isto.id = id;
}
public int getIdade()
{
idade de retorno;
}
public void setAge(int idade)
{
esta.idade = idade;
}
public List<Aluno> getAlunos()
{
alunos que retornam;
}
public void setAlunos(List<Aluno> alunos)
{
this.alunos = alunos;
}
@Substituir
String pública paraString()
{
StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append("id:" + this.id).append("/n");
stringBuffer.append("nome:" + this.nome).append("/n");
stringBuffer.append("idade:" + this.idade).append("/n");
retornar stringBuffer.toString();
}
}
复制代码代码如下:
pacote 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;
classe pública SaveStudent
{
Aluno particular;
// 序列化文件保存位置
private String path = "C:/student.Serializable";
public void writeStudent()
{
List<Aluno> alunos = new ArrayList<Aluno>();
aluno = novo aluno();
Aluno aluno1 = novo Aluno();
aluno1.setAge(1);
aluno1.setId("1");
aluno1.setName("张1");
alunos.add(aluno1);
Aluno aluno2 = novo Aluno();
aluno2.setAge(2);
aluno2.setId("2");
aluno2.setName("张2");
alunos.add(aluno2);
Aluno aluno3 = novo Aluno();
aluno3.setAge(3);
aluno3.setId("3");
aluno3.setName("张3");
alunos.add(aluno3);
Aluno aluno4 = novo Aluno();
aluno4.setAge(4);
aluno4.setId("4");
aluno4.setName("张4");
Aluno aluno41 = novo Aluno();
aluno41.setAge(41);
aluno41.setId("41");
aluno41.setName("张41");
List<Aluno> alunos4 = new ArrayList<Aluno>();
alunos4.add(aluno41);
aluno4.setAlunos(alunos4);
alunos.add(aluno4);
aluno.setAge(500);
aluno.setId("100");
aluno.setName("张A000");
aluno.setAlunos(alunos);
tentar
{
ObjectOutputStream objectOutputStream = novo ObjectOutputStream(novo FileOutputStream(caminho));
objectOutputStream.writeObject(aluno);
objectOutputStream.close();
}
pegar (IOException e)
{
// TODO Bloco catch gerado automaticamente
e.printStackTrace();
}
System.out.println("写完");
}
public void readStudent()
{
tentar
{
ObjectInputStream objectInputStream = novo ObjectInputStream(novo FileInputStream(caminho));
aluno = (Aluno) objectInputStream.readObject();
System.out.println(aluno.getAge());
objectInputStream.close();
}
pegar (Exceção e)
{
e.printStackTrace();
}
System.out.println("读完");
}
@Substituir
String pública paraString()
{
leiaAluno();
StringBuffer stringBuffer = new StringBuffer(100);
alunoToString(stringBuffer, aluno);
retornar stringBuffer.toString();
}
public void studentToString(StringBuffer stringBuffer, Student studentObj)
{
if (aluno! = nulo)
{
stringBuffer.append("id:" + studentObj.toString()).append("/n");
if (studentObj.getStudents()! = null)
{
stringBuffer.append("/n[/n");
para (bean de estudante: studentObj.getStudents())
{
estudanteToString(stringBuffer, bean);
}
stringBuffer.append("/n]/n");
}
}
}
}
测试类:
复制代码代码如下:
pacote com.chen.seriaizable;
Teste de classe pública
{
/**
* @param argumentos
*/
público estático void principal(String[] args)
{
SaveStudent saveStudent = new SaveStudent();
// 1 先执行写入文件
// saveStudent.writeStudent();
// 2 再读取
System.out.println(saveStudent);
System.out.println("读完");
}
}