java 序列化对象 serializable 读写数据的实例
java 序列化对象 serializable 读写数据的实例
发布时间:2016-12-28 来源:查字典编辑
摘要:序列化对象:复制代码代码如下:packagecom.chen.seriaizable;importjava.io.Serializable;...

序列化对象:

复制代码 代码如下:

package com.chen.seriaizable;

import java.io.Serializable;

import java.util.List;

@SuppressWarnings("serial")

public class Student implements Serializable

{

private String name;

private String id;

private int age;

private List<Student> students;

public String getName()

{

return name;

}

public void setName(String name)

{

this.name = name;

}

public String getId()

{

return id;

}

public void setId(String id)

{

this.id = id;

}

public int getAge()

{

return age;

}

public void setAge(int age)

{

this.age = age;

}

public List<Student> getStudents()

{

return students;

}

public void setStudents(List<Student> students)

{

this.students = students;

}

@Override

public String toString()

{

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();

}

}

复制代码 代码如下:

package com.chen.seriaizable;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.ObjectInputStream;

import java.io.ObjectOutputStream;

import java.util.ArrayList;

import java.util.List;

public class SaveStudent

{

private Student student;

// 序列化文件保存位置

private String path = "C:/student.Serializable";

public void writeStudent()

{

List<Student> students = new ArrayList<Student>();

student = new Student();

Student student1 = new Student();

student1.setAge(1);

student1.setId("1");

student1.setName("张1");

students.add(student1);

Student student2 = new Student();

student2.setAge(2);

student2.setId("2");

student2.setName("张2");

students.add(student2);

Student student3 = new Student();

student3.setAge(3);

student3.setId("3");

student3.setName("张3");

students.add(student3);

Student student4 = new Student();

student4.setAge(4);

student4.setId("4");

student4.setName("张4");

Student student41 = new Student();

student41.setAge(41);

student41.setId("41");

student41.setName("张41");

List<Student> students4 = new ArrayList<Student>();

students4.add(student41);

student4.setStudents(students4);

students.add(student4);

student.setAge(500);

student.setId("100");

student.setName("张A000");

student.setStudents(students);

try

{

ObjectOutputStream objectOutputStream = new ObjectOutputStream(new FileOutputStream(path));

objectOutputStream.writeObject(student);

objectOutputStream.close();

}

catch (IOException e)

{

// TODO Auto-generated catch block

e.printStackTrace();

}

System.out.println("写完");

}

public void readStudent()

{

try

{

ObjectInputStream objectInputStream = new ObjectInputStream(new FileInputStream(path));

student = (Student) objectInputStream.readObject();

System.out.println(student.getAge());

objectInputStream.close();

}

catch (Exception e)

{

e.printStackTrace();

}

System.out.println("读完");

}

@Override

public String toString()

{

readStudent();

StringBuffer stringBuffer = new StringBuffer(100);

studentToString(stringBuffer, student);

return stringBuffer.toString();

}

public void studentToString(StringBuffer stringBuffer, Student studentObj)

{

if (student != null)

{

stringBuffer.append("id:" + studentObj.toString()).append("n");

if (studentObj.getStudents() != null)

{

stringBuffer.append("n[n");

for (Student bean : studentObj.getStudents())

{

studentToString(stringBuffer, bean);

}

stringBuffer.append("n]n");

}

}

}

}

测试类:

复制代码 代码如下:

package com.chen.seriaizable;

public class Test

{

/**

* @param args

*/

public static void main(String[] args)

{

SaveStudent saveStudent = new SaveStudent();

// 1 先执行写入文件

// saveStudent.writeStudent();

// 2 再读取

System.out.println(saveStudent);

System.out.println("读完");

}

}

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Java学习
热门Java学习
编程开发子分类