SerializeUtil序列化工具类解析
来源:互联网 发布:最小公倍数怎么求c语言 编辑:程序博客网 时间:2024/05/16 11:14
Java中ObjectInputStream 与 ObjectOutputStream这两个包装类可用于输入流中读取对象类数据和将对象类型的数据写入到底层输入流 。ObjectInputStream 与
ObjectOutputStream 类所读写的对象必须实现了 Serializable 接口。需要注意的是:对象中的 transient 和 static 类型的成员变量不会被读取和写入 。
ByteArrayOutputStream: 可以捕获内存缓冲区的数据,转换成字节数组。
public byte[] toByteArray()创建一个新分配的字节数组。数组的大小和当前输出流的大小,内容是当前输出流的拷贝。
序列化举例:
public static byte[] serialize(Object object) {
ObjectOutputStream oos = null;
ByteArrayOutputStream baos = null;
try {
// 序列化
baos = new ByteArrayOutputStream();
oos = new ObjectOutputStream(baos);
oos.writeObject(object);
byte[] bytes = baos.toByteArray();
return bytes;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
反序列化举例:
public static Object unserialize(byte[] bytes) {
ByteArrayInputStream bais = null;
try {
// 反序列化
bais = new ByteArrayInputStream(bytes);
ObjectInputStream ois = new ObjectInputStream(bais);
return ois.readObject();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
java里把一个类对象序列化后,存入文件,在读出时,只能读出第一个,再读的话就异常了,怎么解决?可以采用数组的方式进行解决,demo如下:
public static Map<String, Object> testBytes2Map(byte[] bytes) {
Map<String, Object> result = null;
try {
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(bytes);
ObjectInputStream inputStream = new ObjectInputStream(byteArrayInputStream);
result = (Map<String, Object>) inputStream.readObject();
inputStream.close();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return result;
}
- SerializeUtil序列化工具类解析
- java序列化工具类
- Protostuff序列化工具类
- protostuff序列化工具类
- Java序列化工具类
- 任意泛型序列化工具类
- java 对象序列化工具类
- Java对象序列化工具类
- Android 序列化工具类SerializableUtil
- Kryo详解《kryo序列化工具类》
- Android java 序列化工具类 SerializableUtil
- 对象序列化工具
- java序列化工具
- 序列化工具SerializeUtils
- ProtoStuff序列化工具
- 简单序列化工具
- XmlSerializationHelper Xml序列化工具
- json字符串序列化工具
- 任务三 理解Task
- C++各种容器特点总结
- windwos10开启BASH后安装metasploit
- ORACLE存储过程自动生成编号
- python挑战之level 15
- SerializeUtil序列化工具类解析
- setsockopt 设置socket 详细用法
- 內固——n*n的棋盘上最多可以放多少个马
- 前端学习日记之javascript闭包
- 超简单spring、springmvc和hibernate整合的列子
- 开源多线程性能测试工具-sysbench
- 斐波那契数列
- HDU5894分位置(组合数,lucas,乘法逆元)
- Ubuntu环境下 安装python工具包numpy,scipy,matplotlib