VO.java
import java.io.Serializable; /** * [概 要] java对象序列化工具<br/> * [环 境] J2SE 1.7 * @author 研发部-ly * @version 1.0 */ public class VO<T> implements Serializable { private T value; public VO(T value) { this.value = value; } public VO() { } public T getValue() { return value; } @Override public String toString() { return "VO{" + "value=" + value + '}'; } }
ProtostuffSerializer.java
import java.util.concurrent.ConcurrentHashMap; import com.dyuproject.protostuff.LinkedBuffer; import com.dyuproject.protostuff.ProtostuffIOUtil; import com.dyuproject.protostuff.Schema; import com.dyuproject.protostuff.runtime.RuntimeSchema; /** * [概 要] protostuff对象序列化工具<br/> * [环 境] J2SE 1.7 * @author 研发部-ly * @version 1.0 */ public class ProtostuffSerializer { private static ConcurrentHashMap<Class<?>, Schema<?>> cachedSchema = new ConcurrentHashMap<Class<?>, Schema<?>>(); public <T> byte[] serialize(final T source) { VO<T> vo = new VO<T>(source); final LinkedBuffer buffer = LinkedBuffer.allocate(LinkedBuffer.DEFAULT_BUFFER_SIZE); try { final Schema<VO> schema = getSchema(VO.class); return serializeInternal(vo, schema, buffer); } catch (final Exception e) { throw new IllegalStateException(e.getMessage(), e); } finally { buffer.clear(); } } public <T> T deserialize(final byte[] bytes) { try { Schema<VO> schema = getSchema(VO.class); VO vo = deserializeInternal(bytes, schema.newMessage(), schema); if (vo != null && vo.getValue() != null) { return (T) vo.getValue(); } } catch (final Exception e) { throw new IllegalStateException(e.getMessage(), e); } return null; } private <T> byte[] serializeInternal(final T source, final Schema<T> schema, final LinkedBuffer buffer) { return ProtostuffIOUtil.toByteArray(source, schema, buffer); } private <T> T deserializeInternal(final byte[] bytes, final T result, final Schema<T> schema) { ProtostuffIOUtil.mergeFrom(bytes, result, schema); return result; } private static <T> Schema<T> getSchema(Class<T> clazz) { @SuppressWarnings("unchecked") Schema<T> schema = (Schema<T>) cachedSchema.get(clazz); if (schema == null) { schema = RuntimeSchema.createFrom(clazz); cachedSchema.put(clazz, schema); } return schema; } }
测试:
/** * * [概 要] 序列化对象 * * @param object 要序列化的对象 * @return byte[] 对象序列化后的字节信息 */ private byte[] serialize(Object object) { ProtostuffSerializer protostuffSerializer = new ProtostuffSerializer(); byte[] result=protostuffSerializer.serialize(object); return result; } /** * * [概 要] 反序列化 * @param bytes 对象的字节信息 * @return Object 反序列化的对象 */ public static Object unserialize(byte[] bytes) { ProtostuffSerializer protostuffSerializer = new ProtostuffSerializer(); Object object=protostuffSerializer.deserialize(bytes); return object; }
相关推荐
Xson是一个Java对象序列化和反序列化程序。支持Java对象到字节数组的序列化,和从字节数组到Java对象的反序列化。 Maven: <groupId>com.github.xsonorg</groupId> <artifactId>xson-core <version>1.0.1 ...
支持jdk1.6以上版本,protostuff源码,拷入项目即可使用
将Java对象序列化成ISO-8859-1、Base64字节流和Xml字符串三种方式。
1.对象序列化的介绍 (1).NET支持对象序列化的几种方式 二进制序列化:对象序列化之后是二进制形式的,通过BinaryFormatter类来实现的,这个类位于System.Runtime.Serialization.Formatters.Binary命名空间下。 SOAP...
提供prostuff序列化源码,直接将需要的源码拷进项目即可。
java反序列化工具,覆盖jboss、weblogic、websphere。
JsonTools是一个不错的JSON序列化和反序列化功能包
java 对象的序列化与反序列化 java 对象的序列化与反序列化
对象序列化和反序列化流
海尔2307户户通直播星序列化工具为工厂维修机器使用使用场景:(1)更换flash需要重新进行序列化, 更改stbid或保留stbid不变1.本工具不需要连接工厂数据库,而是直接从HIC2307_NDSCA_xxxxxxxx_xxxxxxxx.dat文件里...
c#对象序列化与反序列化实例c#对象序列化与反序列化实例c#对象序列化与反序列化实例c#对象序列化与反序列化实例c#对象序列化与反序列化实例c#对象序列化与反序列化实例
对象序列化.ppt 对象序列化.ppt 对象序列化.ppt 对象序列化.ppt 对象序列化.ppt
form提交的时候以json对象的方式传递,需要使用的转化工具。
包括了序列化和反序列化功能,将对应包拷入工程即可使用
在java.beans包中,有两个好东西,XMLEncoder和XMLDecoder。从XML存取对象真是太费力气啦。做了小工具类,以后可以用用了。本文介绍了这两个可以把JAVA对象序列化保存为XML文件的工具类。
序列化的过程就是对象写入字节流和从字节流中读取对象。将对象状态转换成字节流之后,可以用java.io包中的各种字节流类将其保存到文件中,管道到另一线程中或通过网络连接将对象数据发送到另一主机。对象序列化功能...
刷机用工具 。
java反序列化工具;weblogic反序列化工具;jboss反序列化工具。
.NET对象序列化与数据持久化.NET对象序列化与数据持久化.NET对象序列化与数据持久化.NET对象序列化与数据持久化.NET对象序列化与数据持久化.NET对象序列化与数据持久化(Q群号:152088818 本群只为有经验的.NET开发者...
基于WindowForm应用程序C#语言通过实际案例实现将对象保存到文件及从已保存的文件中读取对象(直接保存与读取、通过序列化与反序列化方式进行对象保存与读取)