Java 序列化和反序列化實例詳解
更新時間:2017年03月25日 17:08:05 投稿:lqh
這篇文章主要介紹了Java 序列化和反序列化實例詳解的相關(guān)資料,需要的朋友可以參考下
Java 序列化和反序列化實例詳解
在分布式應(yīng)用中,對象只有經(jīng)過序列化才能在各個分布式組件之間傳輸,這就涉及到兩個方面的技術(shù)-發(fā)送者將對象序列化,接受者將對象反序列化,下面就是一個很好的例子!
1.實體-Employee
import java.io.Serializable; public class Employee implements Serializable{ /** * */ private static final long serialVersionUID = 1L; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } private String name; private int age; }
2.SerializeHelper
import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; public class SerializeHelper { public byte[] Serialize(Object object) { ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); try { ObjectOutputStream objectOutputStream = new ObjectOutputStream(byteArrayOutputStream); //將對象寫入到字節(jié)數(shù)組中進行序列化 objectOutputStream.writeObject(object); return byteArrayOutputStream.toByteArray(); } catch (IOException e) { e.printStackTrace(); } return null; } public Object deSerialize(byte[] bytes) { //將二進制數(shù)組導(dǎo)入字節(jié)數(shù)據(jù)流中 ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(bytes); try { //將字節(jié)數(shù)組流轉(zhuǎn)化為對象 ObjectInputStream objectInputStream = new ObjectInputStream(byteArrayInputStream); return objectInputStream.readObject(); } catch (IOException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } return null; } }
3.測試類
public class Hello { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub SerializeHelper serializeHelper = new SerializeHelper(); Employee employee = new Employee(); employee.setName("admin"); employee.setAge(20); byte[] serializObject = serializeHelper.Serialize(employee); System.out.println(serializObject); Employee e = (Employee)serializeHelper.deSerialize(serializObject); System.out.println("Name: " + e.getName()+",Age: " + e.getAge()); } }
4.輸出
[B@e05d173 Name: admin,Age: 20
5.總結(jié)
序列化和反序列化還有其他的框架可以完成,比如Hession,有機會再研究!
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
java實現(xiàn)解析二進制文件的方法(字符串、圖片)
本篇文章主要介紹了java實現(xiàn)解析二進制文件的方法(字符串、圖片),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-02-02IntelliJ IDEA創(chuàng)建maven web項目的圖文步驟(IDEA新手適用)
這篇文章主要介紹了IntelliJ IDEA創(chuàng)建maven web項目的圖文步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧2020-03-03