序列化对象:
复制代码代码如下:
paket com.chen.seriaizable;
import java.io.Serializable;
impor java.util.List;
@SuppressWarnings("serial")
Siswa kelas publik mengimplementasikan Serializable
{
nama String pribadi;
id String pribadi;
usia swasta;
Daftar pribadi<Mahasiswa> siswa;
String publik getName()
{
nama kembali;
}
public void setName(Nama string)
{
ini.nama = nama;
}
GetId String publik()
{
mengembalikan identitas;
}
kekosongan publik setId(String id)
{
ini.id = id;
}
int publik getAge()
{
usia kembali;
}
kekosongan publik setAge(int usia)
{
this.usia = usia;
}
Daftar Publik<Siswa> getStudents()
{
siswa kembali;
}
public void setSiswa(Daftar<Siswa> siswa)
{
this.students = pelajar;
}
@Mengesampingkan
String publik keString()
{
StringBuffer stringBuffer = StringBuffer baru();
stringBuffer.append("id:" + this.id).append("/n");
stringBuffer.append("nama:" + ini.nama).append("/n");
stringBuffer.append("usia:" + ini.usia).append("/n");
kembalikan stringBuffer.toString();
}
}
复制代码代码如下:
paket com.chen.seriaizable;
impor java.io.FileInputStream;
impor java.io.FileOutputStream;
impor java.io.IOException;
impor java.io.ObjectInputStream;
impor java.io.ObjectOutputStream;
impor java.util.ArrayList;
impor java.util.List;
SaveStudent kelas publik
{
mahasiswa swasta;
// 序列化文件保存位置
jalur String pribadi = "C:/student.Serializable";
kekosongan publik writeStudent()
{
Daftar<Mahasiswa> siswa = ArrayList<Mahasiswa>();
murid = Murid baru();
Siswa siswa1 = Siswa baru();
student1.setUmur(1);
pelajar1.setId("1");
student1.setName("张1");
siswa.tambahkan(siswa1);
Siswa siswa2 = Siswa baru();
student2.setUmur(2);
pelajar2.setId("2");
student2.setName("张2");
siswa.tambahkan(siswa2);
Siswa siswa3 = Siswa baru();
student3.setUmur(3);
pelajar3.setId("3");
student3.setName("张3");
siswa.tambahkan(siswa3);
Siswa siswa4 = Siswa baru();
student4.setUmur(4);
pelajar4.setId("4");
student4.setName("张4");
Siswa siswa41 = Siswa baru();
student41.setUmur(41);
pelajar41.setId("41");
student41.setName("张41");
Daftar<Mahasiswa> siswa4 = DaftarArray baru<Mahasiswa>();
siswa4.tambahkan(siswa41);
student4.setStudents(siswa4);
siswa.tambahkan(siswa4);
pelajar.setUmur(500);
pelajar.setId("100");
student.setName("张A000");
pelajar.setSiswa(siswa);
mencoba
{
ObjectOutputStream objectOutputStream = ObjectOutputStream baru(FileOutputStream(jalur) baru);
objectOutputStream.writeObject(siswa);
objekOutputStream.close();
}
menangkap (IOException e)
{
// TODO Blok tangkapan yang dibuat secara otomatis
e.printStackTrace();
}
System.out.println("写完");
}
kekosongan publik readStudent()
{
mencoba
{
ObjectInputStream objectInputStream = ObjectInputStream baru(FileInputStream(jalur) baru);
pelajar = (Siswa) objectInputStream.readObject();
System.out.println(siswa.getAge());
objekInputStream.close();
}
tangkapan (Pengecualian e)
{
e.printStackTrace();
}
System.out.println("读完");
}
@Mengesampingkan
String publik keString()
{
bacaMahasiswa();
StringBuffer stringBuffer = StringBuffer baru(100);
studentToString(stringBuffer, mahasiswa);
kembalikan stringBuffer.toString();
}
kekosongan publik studentToString(StringBuffer stringBuffer, Student studentObj)
{
jika (siswa != null)
{
stringBuffer.append("id:" + studentObj.toString()).append("/n");
jika (studentObj.getStudents() != null)
{
stringBuffer.append("/n[/n");
untuk (Kacang Siswa : studentObj.getStudents())
{
studentToString(stringBuffer, kacang);
}
stringBuffer.append("/n]/n");
}
}
}
}
Jawabannya:
复制代码代码如下:
paket com.chen.seriaizable;
Tes kelas publik
{
/**
* @param argumen
*/
public static void main(String[] args)
{
SaveStudent saveStudent = new SaveStudent();
// 1 先执行写入文件
// simpanPelajar.tulisPelajar();
// 2 再读取
System.out.println(saveStudent);
System.out.println("读完");
}
}