Java对象序列化的简单例子

首先来看看要序列化的对象

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文件中,并且可以被反序列化,这是一个简单的序列化例子。

标签: Java对象序列化

添加新评论