JAVA序列化 Serializable 将对象转为数组,再反过来将数组转为对象

2022-08-01 10:56:51

序列化过程中,其对象想要被序列化,那么它的类就要实现 此接口,这个对象的所有属性(包括private属性、包括其引用的对象)都可以被序列化和反序列化来保存、传递。
比如:在本实例中,DivSort必须实现Serializable接口,不实现的话,会在序列化过程中报错,一般会在o.writeObject(obj)的这一步骤报错。

import java.io.Serializable;publicclassDivSortimplementsSerializable{publicint age;public String name;publicint score;publicDivSort(int age, String name,int score){super();this.age= age;this.name= name;this.score= score;}publicintgetAge(){return age;}publicvoidsetAge(int age){this.age= age;}public StringgetName(){return name;}publicvoidsetName(String name){this.name= name;}publicintgetScore(){return score;}publicvoidsetScore(int score){this.score= score;}}
import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.io.Serializable;import java.util.ArrayList;publicclassArrayToByte{/**
	 * 
	 */privatestaticfinallong serialVersionUID=1L;publicstaticvoidmain(String[] args)throws IOException, ClassNotFoundException{// TODO Auto-generated method stub
		ArrayList<DivSort>  list1=newArrayList<DivSort>();byte[] b=null;
		list1.add(newDivSort(12,"zhansan",234));
		list1.add(newDivSort(13,"zhansan",234));
		list1.add(newDivSort(14,"zhansan",234));for(DivSort l:list1){
			System.out.println(l.age);}
		System.out.println("start");
		b=ArrayToByte.serialize(list1);
		System.out.println(b);
		System.out.println(ArrayToByte.deserialize(b));
		list1=(ArrayList<DivSort>) ArrayToByte.deserialize(b);for(DivSort d:list1){
			System.out.println(d.getAge());}}publicstaticbyte[]serialize(Object obj)throws IOException{try(ByteArrayOutputStream b=newByteArrayOutputStream()){try(ObjectOutputStream o=newObjectOutputStream(b)){
	                o.writeObject(obj);}return b.toByteArray();}}publicstatic Objectdeserialize(byte[] bytes)throws IOException, ClassNotFoundException{try(ByteArrayInputStream b=newByteArrayInputStream(bytes)){try(ObjectInputStream o=newObjectInputStream(b)){return o.readObject();}}}}
  • 作者:丘山一郎
  • 原文链接:https://blog.csdn.net/qq_43170213/article/details/107733393
    更新时间:2022-08-01 10:56:51