Java對象序列化用法



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
+ "]";
}

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章