来看看要序列化的对象
Person.java
package com.zjut.yunfeiyang;
import java.io.Serializable;
public class Person implements Serializable{
private static final long serialVersionUID = -5434734211562785652L;
public Person() {
}
private String name;
private String password;
private String id;
private String address;
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}
/**
* @return the password
*/
public String getPassword() {
return password;
}
/**
* @param password the password to set
*/
public void setPassword(String password) {
this.password = password;
}
/**
* @return the id
*/
public String getId() {
return id;
}
/**
* @param id the id to set
*/
public void setId(String id) {
this.id = id;
}
/**
* @param address the address to set
*/
public void setAddress(String address) {
this.address = address;
}
/**
* @return the address
*/
public String getAddress() {
return address;
}
}
再来看看测试代码:
Test.java
package com.zjut.yunfeiyang;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
public class Test {
public Test() {
}
/**
* @param args
*/
public static void main(String[] args) {
Person s=new Person();
s.setId("03058661");
s.setName("陈建泉");
s.setPassword("************");
s.setAddress("Hangzhou,Zhejiang");
File f=new File("Serializable.dll");
if(!f.exists())
{
try {
f.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
try {
//执行序列化
ObjectOutputStream out=new ObjectOutputStream(new FileOutputStream(f));
out.writeObject(s);
out.close();
s=null;
//执行反序列化
ObjectInputStream in=new ObjectInputStream(new FileInputStream(f));
Person p=(Person)in.readObject();
System.out.println(p.getId());
System.out.println(p.getName());
System.out.println(p.getPassword());
System.out.println(p.getAddress());
in.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
程序输出如下:
03058661
陈建泉
************
Hangzhou,Zhejiang
从结果中可以看出,对象被正确的序列化到Serializable.dll文件中,并且可以被反序列化,这是一个简单的序列化例子.