什麼是java的序列化,怎麼實現序列化?
阿新 • • 發佈:2018-12-11
一、什麼是序列化:
序列化就是一種用來處理物件流的機制,所謂物件流也就是將物件的內容進行流化(將物件轉換成二進位制)。可以對流化後的物件進行讀寫操作,也可將流化後的物件傳輸於網路之間。序列化是為了解決在對物件流進行讀寫操作時所引發的問題。
二、在Java中如何實現序列化:
將需要被序列化的類實現Serializable介面,該介面沒有需要實現的方法,implements Serializable只是為了標註該物件是可被序列化的,然後使用一個輸出流(如:FileOutputStream)來構造一個ObjectOutputStream(物件流)物件,接著,使用ObjectOutputStream物件的writeObject(Object obj)方法就可以將引數為obj的物件寫出(即儲存其狀態),要恢復的話則用輸入流。
三、例項:
首先我們要把準備要序列化類,實現 Serializabel介面
例如:我們要Person類裡的name和age都序列化
import java.io.Serializable; public class Person implements Serializable { //本類可以序列化 private String name ; private int age ; public Person(String name,int age){ this.name = name ; this.age = age ; } public String toString(){ return "姓名:" + this.name + ",年齡" + this.age ; } }
然後:我們將name和age序列化(也就是把這2個物件轉為二進位制,統族理解為“打碎”)
package org.lxh.SerDemo; import java.io.File; import java.io.FileOutputStream; import java.io.ObjectOutputStream ; public class ObjectOutputStreamDemo { //序列化 public static void main(String[] args) throws Exception { //序列化後生成指定檔案路徑 File file = new File("D:" + File.separator + "person.ser") ; ObjectOutputStream oos = null ; //裝飾流(流) oos = new ObjectOutputStream(new FileOutputStream(file)) ; //例項化類 Person per = new Person("張三",30) ; oos.writeObject(per) ; //把類物件序列化 oos.close() ; } }
四、相關概念:
序列化:把Java物件轉換為位元組序列的過程。
反序列化:把位元組序列恢復為Java物件的過程。
五、用途:
物件的序列化主要有兩種用途:
1.把物件的位元組序列永久地儲存到硬碟上,通常存放在一個檔案中;
2.在網路上傳送物件的位元組序列。
作者:Roger_CoderLife
連結:https:blog.csdn.net/Roger_CoderLife/article/details/84334896
本文為Roger_CoderLife的原創文章,著作權歸作者所有,轉載請註明原文出處,歡迎轉載!