序列化对象 :
复代码代码如下:
패키지 com.chen.seriaized;
import java.io.Serialized;
java.util.List 가져오기;
@SuppressWarnings("연속")
공개 클래스 학생이 직렬화 가능을 구현합니다.
{
개인 문자열 이름;
개인 문자열 ID;
비공개 연령;
개인 목록<학생> 학생;
공개 문자열 getName()
{
이름 반환;
}
public void setName(문자열 이름)
{
this.name = 이름;
}
공개 문자열 getId()
{
반환 ID;
}
공개 무효 setId(문자열 ID)
{
this.id = 아이디;
}
공개 int getAge()
{
복귀 연령;
}
공개 무효 setAge(int age)
{
this.나이 = 나이;
}
공개 목록<학생> getStudents()
{
귀국 학생;
}
public void setStudents(목록<학생> 학생)
{
this.students = 학생;
}
@보수
공개 문자열 toString()
{
StringBuffer stringBuffer = 새로운 StringBuffer();
stringBuffer.append("id:" + this.id).append("/n");
stringBuffer.append("name:" + this.name).append("/n");
stringBuffer.append("age:" + this.age).append("/n");
stringBuffer.toString()을 반환합니다.
}
}
复代码代码如下:
패키지 com.chen.seriaized;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
java.util.List 가져오기;
공개 수업 SaveStudent
{
사립 학생 학생;
// 序列文件保存位置
개인 문자열 경로 = "C:/student.Serialized";
공개 무효 writeStudent()
{
List<Student> 학생 = new ArrayList<Student>();
학생 = 새로운 학생();
학생 학생1 = 새 학생();
Student1.setAge(1);
Student1.setId("1");
Student1.setName("张1");
학생.추가(학생1);
학생 학생2 = 새 학생();
Student2.setAge(2);
Student2.setId("2");
Student2.setName("张2");
학생.추가(학생2);
학생 학생3 = 새 학생();
Student3.setAge(3);
Student3.setId("3");
Student3.setName("张3");
학생.추가(학생3);
학생 학생4 = 새 학생();
Student4.setAge(4);
Student4.setId("4");
Student4.setName("张4");
학생 학생41 = 새 학생();
Student41.setAge(41);
Student41.setId("41");
Student41.setName("张41");
List<Student> Students4 = new ArrayList<Student>();
학생4.추가(학생41);
Student4.setStudents(학생4);
학생.추가(학생4);
학생.setAge(500);
Student.setId("100");
Student.setName("张A000");
Student.setStudents(학생);
노력하다
{
ObjectOutputStream objectOutputStream = new ObjectOutputStream(new FileOutputStream(경로));
objectOutputStream.writeObject(학생);
objectOutputStream.close();
}
잡기(IOException e)
{
// TODO 자동 생성된 캐치 블록
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 = 새로운 StringBuffer(100);
StudentToString(stringBuffer, 학생);
stringBuffer.toString()을 반환합니다.
}
공공 무효 학생ToString(StringBuffer stringBuffer, 학생 StudentObj)
{
if (학생 != null)
{
stringBuffer.append("id:" + StudentObj.toString()).append("/n");
if (studentObj.getStudents() != null)
{
stringBuffer.append("/n[/n");
for (학생 빈 : StudentObj.getStudents())
{
StudentToString(stringBuffer, 빈);
}
stringBuffer.append("/n]/n");
}
}
}
}
测试类:
复代码代码如下:
패키지 com.chen.seriaized;
공개 수업 테스트
{
/**
* @param 인수
*/
공개 정적 무효 메인(문자열[] 인수)
{
SaveStudent saveStudent = 새로운 SaveStudent();
// 1 先执行写入文件
// saveStudent.writeStudent();
// 2 再读取
System.out.println(saveStudent);
System.out.println("정보");
}
}