序列化对象:
复制代码代码如下:
包 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("读完");
}
}