java对象序列化 传输 保存

package com;

import java.io.Serializable;

public class Teacher implements Serializable
{
private static final long serialVersionUID = -8732868773377627151L;
private String name;
private Student student;
public String getName()
{
   return name;
}
public void setName(String name)
{
   this.name = name;
}
public Student getStudent()
{
   return student;
}
public void setStudent(Student student)
{
   this.student = student;
}
public String toString()
{
   return "Teacher [name=" + name + ", student=" + student + "]";
}

}

package com;

import java.io.Serializable;

public class Student implements Serializable
{
private static final long serialVersionUID = 7194554035111554277L;
private String name;
private Teacher teacher;
public String getName()
{
   return name;
}
public void setName(String name)
{
   this.name = name;
}
public Teacher getTeacher()
{
   return teacher;
}

public void setTeacher(Teacher teacher)
{
   this.teacher = teacher;
}

public String toString()
{
   return "Student [name=" + name + ", teacher=" + teacher + "]";
}

}

package com;

import java.io.ByteArrayOutputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;

public class Obj2File
{
public static void main(String[] args) throws FileNotFoundException, IOException
{
   Teacher teacher = new Teacher();
   teacher.setName("Tony");
  
   Student student = new Student();
   student.setName("Danny");
   student.setTeacher(teacher);
   teacher.setStudent(student);
  
   System.out.println("将Teacher对象写入到文件中...");
   ByteArrayOutputStream oas = new ByteArrayOutputStream();
   ObjectOutputStream oos = new ObjectOutputStream(oas);
   //将Teacher对象压入oas
   oos.writeObject(teacher);
   StringBuffer sb = new StringBuffer();
   byte bytes[] = oas.toByteArray();
   //将oas输出
   for(int i=0;i<bytes.length;i++){
    System.out.print(bytes[i]+" ");
    sb.append(bytes[i]);
   }
   System.out.println("\n"+sb.toString());
   oos.close();
   oas.close();
  
   System.out.println("将Teacher对象写入到文件C:\\Teacher.tmp中...");
   ObjectOutputStream oos2 = new ObjectOutputStream(
     new FileOutputStream("C:/Teacher.tmp"));
   oos2.writeObject(teacher);
   oos2.close();
   System.out.println("完成!");
}

}

package com;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.ObjectInputStream;

public class File2Obj
{
public static void main(String[] args) throws FileNotFoundException, IOException, ClassNotFoundException
{
   ObjectInputStream ois = new ObjectInputStream(new FileInputStream("C:/Teacher.tmp"));
   Teacher teacher = (Teacher) ois.readObject();
   System.out.println(teacher.getStudent().getTeacher().getName());
   ois.close();
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值