java序列化和java反序列化示例。本站提示廣大學習愛好者:(java序列化和java反序列化示例)文章只能為提供參考,不一定能成為您想要的結果。以下是java序列化和java反序列化示例正文
序列化普通運用與以下場景當中:
1.永遠性保留對象,把對象經由過程序列化字撙節保留到當地文件中;
2.經由過程序列化在收集中傳輸對象
3.經由過程序列化在過程間傳遞對象
import java.io.Serializable;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
public class javaSerializable_fun {
/**
* java.io.Serializable 接口,類只要完成Serializable托言能力被序列化
* java.io.Externalizable接口,應用java的序列化和反序列化對象,許多存儲和恢復對象的任務都可以主動完成。
* java.io.ObjectOutput接口,序列化傳出, 繼續了DataOutput接口並界說了一些辦法,它支撐對象序列化;
* 重點解釋:在該類中,writeObject()辦法是最主要的辦法,用於對象序列化,假如對象包括其他的對象援用,則writeObject()辦法地櫃序列化這些對象;
* java.io.ObjectOutputStream類,擔任向流中寫入對象,結構辦法:ObjectOutputStream(OutputStream out);
* java.io.ObjectInput接口,序列化傳入。繼續了DataInput接口並界說了一些辦法,它支撐對象序列化;
* ObjectInputStream類, 擔任向從流中讀取對象,結構辦法:ObjectInputStream(InputStream out);
***/
public static void main(String[] args) {
try
{
//結構FileOutputStream對象
FileOutputStream f=new FileOutputStream("C:a.txt");
//結構ObjectOutputStream對象
ObjectOutputStream out=new ObjectOutputStream(f);
Customer customer=new Customer("bj",50);
//應用ObjectOutputStream對象的writeObject()辦法停止序列化
out.writeObject(customer);
//封閉ObjectOutputStream對象
out.close();
//封閉FileOutputStream對象
f.close();
System.out.println("序列化終了!");
}
catch(IOException e)
{
e.getStackTrace();
}
}
}
class Customer implements Serializable
{
private static final long serialVersionUID =1L;
private String name;
private int age;
public String getName()
{
return name;
}
public int getAge()
{
return age;
}
public Customer(String name,int age)
{
this.name=name;
this.age=age;
}
public String toString()
{
return "name="+ name +",age="+age;
}
}