Java对象序列化用法

来源:互联网 发布:mac管理员用户没有了 编辑:程序博客网 时间:2024/04/29 07:38


public class ObjectStreamTest {


@Test
public void testSerializable() throws IOException{
Person person=new Person("AA",12);
person.setAddress(new Address("Beijing"));
//使用ObjectOutputStream把对象写到硬盘上
OutputStream out=new FileOutputStream("d:\\obj.txt");
ObjectOutputStream objectOutputStream=new ObjectOutputStream(out);
objectOutputStream.writeObject(person);
out.close();
objectOutputStream.close();
}

@Test
public void testInputObjectStream() throws IOException, Exception{
InputStream in=new FileInputStream("d:\\obj.txt");
ObjectInputStream objectInputStream=new ObjectInputStream(in);
Object obj=objectInputStream.readObject();
System.out.println(obj);
objectInputStream.close();
in.close();
}

}

Person.java

package file.test.com;


import java.io.Serializable;


public class Person implements Serializable{
/**
* 类的版本号:用于对象的序列化,具体用于读取对象时,比对硬盘上对象的版本和程序中对象的版本是否一致
* 若不一致读取失败,并抛出异常
*/

private static final long serialVersionUID = 1L;
private String name;
private int age;
private Address address;

public String getName() {
return name;
}

public Address getAddress() {
return address;
}

public void setAddress(Address address) {
this.address = address;
}


public void setName(String name) {
this.name = name;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

public Person(String name, int age) {
super();
this.name = name;
this.age = age;
System.out.println("带参构造器");
}
public Person(){
System.out.println("无参构造器");
}

@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + ", address=" + address
+ "]";
}

}

0 0
原创粉丝点击