性能最好的序列化反序列化,Protobuf的用法(maven项目)
来源:互联网 发布:win10查看图片软件 编辑:程序博客网 时间:2024/05/29 08:58
首先要在pom.xml里添加Protobuf的jar包
<dependency> <groupId>com.dyuproject.protostuff</groupId> <artifactId>protostuff-core</artifactId> <version>1.0.8</version> </dependency> <dependency> <groupId>com.dyuproject.protostuff</groupId> <artifactId>protostuff-runtime</artifactId> <version>1.0.8</version> </dependency>
序列化的实体类User.Java(不需要实现Serializable接口)
package com.serialize.entity; public class User { private String id; private String username; private String password; public User() { } public User(String id, String username, String password) { this.id = id; this.username = username; this.password = password; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String toString() { return "User [id=" + id + ", username=" + username + ", password=" + password + "]"; } }
序列化的工具类SerializeUtils.java(使用了泛型方法)
package com.serialize.utils; import com.dyuproject.protostuff.LinkedBuffer; import com.dyuproject.protostuff.ProtobufIOUtil; import com.dyuproject.protostuff.runtime.RuntimeSchema; public class SerializeUtils{ public static <T> byte[] serialize(T t,Class<T> clazz) { return ProtobufIOUtil.toByteArray(t, RuntimeSchema.createFrom(clazz), LinkedBuffer.allocate(LinkedBuffer.DEFAULT_BUFFER_SIZE)); } public static <T> T deSerialize(byte[] data,Class<T> clazz) { RuntimeSchema<T> runtimeSchema = RuntimeSchema.createFrom(clazz); T t = runtimeSchema.newMessage(); ProtobufIOUtil.mergeFrom(data, t, runtimeSchema); return t; } }
测试主类App.java
package com.serialize; import com.serialize.entity.User; import com.serialize.utils.SerializeUtils; public class App { public static void main(String[] args) { User user=new User("1","xiaobao","123456"); System.out.println("序列化"); byte[] data = SerializeUtils.serialize(user,User.class); for (byte b : data) { System.out.print(b); } System.out.println(); System.out.println("反序列化"); User user2 = SerializeUtils.deSerialize(data,User.class); System.out.println(user2); } }
2 0
- 性能最好的序列化反序列化,Protobuf的用法(maven项目)
- 性能最好的序列化反序列化,Protobuf的用法(maven项目)
- protobuf 的序列化与反序列化
- protobuf的序列化与反序列化
- 【Protocol Buffer】Protobuf的序列化和反序列化
- ProtoBuf的序列化和反序列化
- protobuf-net的序列化与反序列化(本地存储)
- protobuf 序列化 反序列接口
- java中使用protobuf序列化(反序列化)
- java中使用protobuf序列化(反序列化)
- google protobuf入门(序列化和反序列化)
- Google Protobuf Primer (1) 实现跨平台跨语言的序列化/反序列化
- Google Protobuf - 实现跨平台跨语言的序列化/反序列化
- Google Protobuf——实现跨平台跨语言的序列化/反序列化
- protobuf Message的序列化和反序列化string类型
- java序列化/反序列化之xml、protobuf、protostuff 的比较与使用例子
- unity3d中ProtoBuf的序列化和反序列化c#
- java序列化/反序列化之xstream、protobuf、protostuff 的比较与使用例子
- Python 实用第三方库
- kmp
- cloudstack+kvm关于虚拟机的终极处理方法
- cocos2d-x基础概念介绍——导演、场景、层、精灵
- 滑动控件起飞的另一种方式
- 性能最好的序列化反序列化,Protobuf的用法(maven项目)
- 撸代码记录篇1.3-奔跑的皮皮熊
- 正则表达式中参数g、i、m的作用
- Java_LinkedList工作原理
- 表单验证
- laravel框架monlog配置
- Redis入门 – Jedis存储Java对象
- SAP ABAP Debug 小技巧
- python自动化测试unittest+selenium+HTMLTestRunner(一)