您的位置:首页 > 其它

[IO]——对象处理流.序列化

2016-04-09 12:25 225 查看
/**
* 不是所有的对象都可以序列化
* 不是所有的属性都需要序列化   transient
* @author Administrator
*
*/
public class ObjectDemo01 {
public static void main(String[] args) throws IOException, ClassNotFoundException {
seri("E:/others/12345.txt");
read("E:/others/12345.txt");
}
//反序列化
public static void read(String destPath) throws IOException, ClassNotFoundException{
//创建源
File dest=new File(destPath);
//选择流ObjectOutputStream
ObjectInputStream dis=new ObjectInputStream(
new BufferedInputStream(
new FileInputStream(dest)
));
//写出操作 ,写出顺序
Object obj=dis.readObject();
if(obj instanceof Employee){
Employee emp=(Employee)obj;
System.out.println(emp.getName());
System.out.println(emp.getSalary());
}
obj=dis.readObject();
int[] arr=(int[])obj;
System.out.println(Arrays.toString(arr));
dis.close();

}
//序列化
public static void seri(String destPath) throws IOException{
Employee emp=new Employee("山大王", 12000);
int[] arr={1,2,3,4};
//创建源
File dest=new File(destPath);
//选择流ObjectOutputStream
ObjectOutputStream dos=new ObjectOutputStream(
new BufferedOutputStream(
new FileOutputStream(dest)
));
//写出操作 ,写出顺序
dos.writeObject(emp);
dos.writeObject(arr);
dos.close();
}
}

/**
* 空接口知识标识
* @author Administrator
*
*/
public class Employee implements java.io.Serializable{
private transient String name;//不需要序列化
private double salary;
public Employee() {
// TODO Auto-generated constructor stub
}
public Employee(String name, double salary) {
super();
this.name = name;
this.salary = salary;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  IO 对象处理流