性能最好的序列化反序列化,Protobuf的用法(maven项目)
来源:互联网 发布:医院信息管理系统源码 编辑:程序博客网 时间:2024/05/15 01:32
首先要在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;}@Overridepublic 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);}}
0 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 的比较与使用例子
- 入门redis必知的基础知识
- 二叉树深度、广度及遍历
- FileSystemXmlApplicationContext 路径
- cloud-init 手动调试及问题解决
- Tomcat服务器下部署项目几种方式
- 性能最好的序列化反序列化,Protobuf的用法(maven项目)
- Qt生成随机数
- MongoDB的Windows下安装并配置MongoDB服务
- POJ-1903 Jurassic Remains
- 机器学习入门之多项式曲线拟合
- I was unable to save the HTTP result to file because of a I/O error: Server redirected too many tim
- SpringMVC默认依赖Bean:BeanNameUrlHandlerMapping
- leetcode 217. Contains Duplicate
- 习题 5: