java序列化和java反序列化示例
序列化一般應(yīng)用與以下場景之中:
1.永久性保存對象,把對象通過序列化字節(jié)流保存到本地文件中;
2.通過序列化在網(wǎng)絡(luò)中傳輸對象
3.通過序列化在進(jìn)程間傳遞對象
import java.io.Serializable;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
public class javaSerializable_fun {
/**
* java.io.Serializable 接口,類只有實(shí)現(xiàn)Serializable借口才能被序列化
* java.io.Externalizable接口,利用java的序列化和反序列化工具,很多存儲和恢復(fù)對象的工作都可以自動完成。
* java.io.ObjectOutput接口,序列化傳出, 繼承了DataOutput接口并定義了一些方法,它支持對象序列化;
* 重點(diǎn)說明:在該類中,writeObject()方法是最重要的方法,用于對象序列化,如果對象包含其他的對象引用,則writeObject()方法地柜序列化這些對象;
* java.io.ObjectOutputStream類,負(fù)責(zé)向流中寫入對象,構(gòu)造方法:ObjectOutputStream(OutputStream out);
* java.io.ObjectInput接口,序列化傳入。繼承了DataInput接口并定義了一些方法,它支持對象序列化;
* ObjectInputStream類, 負(fù)責(zé)向從流中讀取對象,構(gòu)造方法:ObjectInputStream(InputStream out);
***/
public static void main(String[] args) {
try
{
//構(gòu)造FileOutputStream對象
FileOutputStream f=new FileOutputStream("C:a.txt");
//構(gòu)造ObjectOutputStream對象
ObjectOutputStream out=new ObjectOutputStream(f);
Customer customer=new Customer("bj",50);
//使用ObjectOutputStream對象的writeObject()方法進(jìn)行序列化
out.writeObject(customer);
//關(guān)閉ObjectOutputStream對象
out.close();
//關(guān)閉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;
}
}
相關(guān)文章
Spring中@Conditional注解的詳細(xì)講解及示例
這篇文章主要介紹了Spring中@Conditional注解的詳細(xì)講解及示例,@Conditional是Spring4新提供的注解,它的作用是按照一定的條件進(jìn)行判斷,滿足條件給容器注冊bean,需要的朋友可以參考下2023-11-11
Java通過Modbus簡單實(shí)現(xiàn)數(shù)采的示例代碼
本文介紹了Java通過Modbus簡單實(shí)現(xiàn)數(shù)采,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-11-11
基于Java實(shí)現(xiàn)一個簡單的單詞本Android App的實(shí)踐
本文基于Java實(shí)現(xiàn)了一個簡單的單詞本安卓app,用的是SQLite數(shù)據(jù)庫,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-01-01
elasticsearch索引的創(chuàng)建過程index?create邏輯分析
這篇文章主要介紹了elasticsearch索引核心index?create,索引的創(chuàng)建過程解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04
IntelliJ IDEA之配置JDK的4種方式(小結(jié))
這篇文章主要介紹了IntelliJ IDEA之配置JDK的4種方式(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10
java?LockSupport實(shí)現(xiàn)原理示例解析
這篇文章主要為大家介紹了java?LockSupport實(shí)現(xiàn)原理示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01

