Kryo java高效序列化框架
阿新 • • 發佈:2019-02-11
由於最近需要用到一些序列化,然後查了一些資料發現Kryo這個框架比較高效。下面說一下使用的一些注意事項。
在使用kryo時候首先匯入所需的依賴,
<dependency>
<groupId>com.esotericsoftware</groupId>
<artifactId>kryo</artifactId>
<version>3.0.3</version>
</dependency>
注意事項:
序列化需要用到的自定義類都需要有一個無參的建構函式,並且把類的屬性初始化了。否則會報一些異常。
demo
private void serialize(String serName) {
try {
FileOutputStream fileOut = new FileOutputStream(serName);
SomeObject so = new SomeObject();
Output objectOutput = new Output(fileOut);
kryo.writeObject(objectOutput, so);
objectOutput.close();
fileOut.close();
} catch (Exception e) {
System.out.println(e);
}
}
private SomeObject unserialize(String serName) {
SomeObject so =null;
try {
FileInputStream fileIn = new FileInputStream(serName);
Input input = new Input(fileIn);
so = (SomeObject)kryo.readObject(input, SomeObject.class);
fileIn.close();
} catch (Exception e) {
e.printStackTrace();
}
return so;
}