XSTREAM序列化與反序列化

2021-08-31 12:32:50 字數 1529 閱讀 4983

使用了xstream的序列化和反序列化,感覺效果不錯。

xstream支援好幾種方式的序列化(xml、json、bin),幾種方式都有其鮮明的優點:

1)xml方式最容易閱讀,且應用範圍比較廣。

2)json方式便於web上的傳輸

3)bin方式的效能最好,占用的空間也比較少

在反序列化時,由於類的結構發生變化導致一些屬性不存在了,可以通過下面的方式對於不存在的屬性予以忽略:

xstream序列化時會帶上類的全路徑,比較不好看也占用空間,可以通過別名的方式簡化

static

使用bin的方式序列化和反序列化物件:

public static final byte serialize(xstream xstream, object obj, boolean compress) else

}/**

* 從xml byte陣列中反序列化出乙個物件

* * @param bytes

* @return

*/public static final object deserialize(byte bytes, boolean decompress) else

bytearrayinputstream bis = new bytearrayinputstream(newbytes);

binarystreamreader bsr = new binarystreamreader(bis);

return deserialize_xstream.unmarshal(bsr);

}

xstream序列化通過反射來獲取物件屬性值,一方面反射效率相對較慢,另一方面不是所有的屬性都需要序列化。可以通過自己實現特定類的序列化來提高效率。

public class datasetserializer implements converter }}

@suppresswarnings("unchecked")

public object unmarshal(hierarchicalstreamreader reader, unmarshallingcontext context)

reader.moveup();

}return ds;

}@suppresswarnings("unchecked")

public boolean canconvert(class cls)

}public class dateserializer implements converter

public object unmarshal(hierarchicalstreamreader reader, unmarshallingcontext ctx)

@suppresswarnings("unchecked")

public boolean canconvert(class cls)

}

序列化和反序列化 C 序列化與反序列化。

序列化介紹 把物件用一種新的格式來表示。系列化只序列化資料。序列化不建議使用自動屬性 為什麼要序列化 將乙個複雜的物件轉換流,方便儲存與資訊交換。class program class person public int age 二進位制序列化 就是將物件變成流的過程,把物件變成byte class...

序列化與反序列化

把複雜的資料型別壓縮到乙個字串中 serialize 把變數和它們的值編碼成文字形式 unserialize 恢復原先變數 eg stooges array moe larry curly new serialize stooges print r new echo print r unserial...

序列化與反序列化

序列化是將物件處理為位元組流以儲存物件或傳輸到記憶體 資料庫或檔案。其主要目的是儲存物件的狀態,以便可以在需要時重新建立物件。相反的過程稱為反序列化。通過序列化,開發人員可以儲存物件的狀態,並在需要時重新建立該物件,從而提供物件的儲存以及資料交換。通過序列化,開發人員還可以執行類似如下的操作 通過 ...