關於序列化

package meify.other;


import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;

/**
* Java自身實現序列化和反序列化
*/
public class SerializableDemo {
public static void main(String[] args) throws Exception {
Person p1 = new Person("lwc", 18, "陝西");
Person p2 = new Person("tom", 19, "河南");
Person p3 = new Person("cat", 20, "北京");
// 序列化
File file=new File("D://person.txt");
if(!file.exists()){
file.createNewFile();
}
FileOutputStream fos = new FileOutputStream(file);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(p1);
oos.writeObject(p2);
oos.writeObject(p3);
// 反序列化
FileInputStream fis = new FileInputStream(file);
ObjectInputStream ois = new ObjectInputStream(fis);

for (int i = 0; i < 3; i++) {
Person p = (Person) ois.readObject();// 把對象寫入文件中
System.out.println(p.name + "," + p.age + "," + p.address);
}
fos.close();
fis.close();
oos.close();
ois.close();
}
}

// 要想使某個類序列化,這個類必須實現Serializable接口
class Person implements Serializable {
private static final long serialVersionUID = -7147436129983998671L;
// 被static,transient修飾的變量不會被保存到文件
static int number;
String name;
int age;
transient String address;

public Person(String name, int age, String address) {
super();
this.name = name;
this.age = age;
this.address = address;
}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章