Kryo序列化学习笔记
来源:互联网 发布:在淘宝上开店步骤 编辑:程序博客网 时间:2024/03/29 22:09
参考资料:https://github.com/EsotericSoftware/kryo#quickstart
开始
Kryo是一种基于java的快速高效序列化框架,该框架的目标是速度,效率以及容易使用的API。项目可以在任何时间将对象永久化到文件,数据库或者网络。
先看一个最简单的例子
Kryo kryo = new Kryo();try {Output output = new Output(new FileOutputStream("file.bin"));String strobj = "hello world";kryo.writeObject(output, strobj);output.close();Input input = new Input(new FileInputStream("file.bin"));String someObject = kryo.readObject(input, String.class);System.out.println(someObject);input.close();} catch (FileNotFoundException e) {e.printStackTrace();}
该程序能够将String对象序列化到文件,然后在从文件中反序列化到内存对象
IO
Output对象继承至OutputStream,可以通过其将数据写入到它内部的bytebuffer。如果给这个Output设置了一个OutputStream的话,当它内部的buffer满了的话,它会将字节数据自动的flush到输出流。Output有很多方法用来将原语和字符串写成字节,它提供的功能类似于DataoutputStream,BufferedOutputStream,FilterOutputStream。
因为Output会将数据缓存到内部的字节数组中,所以当调用完写数据操作后,务必调用flush(),close()函数确保数据发送到输出流中。
Input类是一种InputStream,可以从一个字节数组中读取数据,这个缓存数组可以直接设置。如果给Input设置了InputStream的话,它将从输入流中读取数据来fill缓存数组。Input具有很多方法将字节转换成原语和字符串。它提供的功能类似DataInputStream, BufferedInputStream, FilterInputStream, andByteArrayInputStream.
Serialzer
Kryo是一种序列化框架,它不强制使用某种模式或者操作特点的数据,这些规范都交由Serializers自己来处理。Serializers提供了默认操作数据的各种方法。如果不是特别用途的话,它可以部分或全部的替代。框架提供的Serializers为大多数的对象提供了读写操作的方法,如果需要的的话,自己实现一个Seralizer也十分容易,框架提供了Serialzer抽象类,该类提供了对象转字节和字节转对象的方法。
public class ColorSerializer extends Serializer<Color> { public void write (Kryo kryo, Output output, Color object) { output.writeInt(object.getRGB()); } public Color read (Kryo kryo, Input input, Class<T> type) { return new Color(input.readInt(), true); }}
- Kryo序列化学习笔记
- .Net 序列化学习笔记
- Java序列化学习笔记
- DotNet 序列化学习笔记
- java序列化学习笔记
- java 序列化学习笔记
- Java序列化学习笔记
- java对象序列化学习笔记
- java对象序列化学习笔记
- java对象序列化学习笔记(z)
- [Java]java对象序列化学习笔记
- java对象序列化学习笔记
- java对象序列化学习笔记
- java对象序列化学习笔记
- Java对象序列化学习笔记
- Java对象序列化学习笔记
- java对象序列化学习笔记
- java对象序列化学习笔记
- day12
- Intent Flags理解
- Atom飞行手册翻译: 2.3 文本选择
- iOS工具类之16进制颜色转为UIColor
- Openstack部署工具总结
- Kryo序列化学习笔记
- 对TCP/IP网络协议的深入浅出归纳 注:浅显易懂的分析
- processing定时器代码
- 黑马程序员---iOS学习基础---数组与函数
- CheckBoxList 值写入与显示绑定
- day13
- java使用dom4j解析xml学习记录
- 分期付款原理
- 2.2 分析算法