//需要序列化的对象:
package com.zizhu;
import java.io.Serializable;
public class SerializableHello implements Serializable{
private static final long serialVersionUID = 1L;
private int id ;
private String name = null;
private String address = null;
private int age ;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "SerializableHello [id=" + id + ", name=" + name + ", address="
+ address + ", age=" + age + "]";
}
}
//序列化测试实例:
package com.zizhu;
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 SerializableTest {
/**
* @param args
*/
public static void main(String[] args) {
SerializableHello sh = new SerializableHello();
sh.setId(1);
sh.setName("zizhu");
sh.setAge(20);
sh.setAddress("上海");
SerializableTest st = new SerializableTest();
st.writeObjectToFile("SerializableHello", sh);
SerializableHello sh2 = (SerializableHello)st.readFileToObject("SerializableHello");
System.out.println(sh2);
}
/**
* 将对象序列化到指定文件
* @param name 文件名
* @param o 需要序列化的对象
*/
public void writeObjectToFile(String name, Object o){
FileOutputStream fos = null;
ObjectOutputStream oos = null;
try {
fos = new FileOutputStream(System.getProperty("user.dir") + "/src/" + name);
oos = new ObjectOutputStream(fos);
oos.writeObject(o);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
if(fos != null) fos.close();
if(oos != null) oos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* @param name 已序列化的文件名
* @return 返回对象
*/
public Object readFileToObject(String name){
Object obj = null;
FileInputStream fis = null;
ObjectInputStream ois = null;
try {
fis = new FileInputStream(System.getProperty("user.dir") + "/src/" + name);
ois = new ObjectInputStream(fis);
obj = ois.readObject();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}finally{
try {
if(fis != null) fis.close();
if(ois != null) ois.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return obj;
}
}
运行结果:
SerializableHello [id=1, name=zizhu, address=上海, age=20]