Java序列化和反序列化
来源:互联网 发布:windows tasks sched 编辑:程序博客网 时间:2024/04/30 09:49
简介
序列化是将实例化对象转换成字节数组,反序列化是将字节数组转换成对象。
实例
前提
使需要序列化的类实现Serializable接口
public class MyMessage implements Serializable
序列化
ByteArrayOutputStream byteArrayOutputStream=new ByteArrayOutputStream(); ObjectOutputStream objectOutputStream=new ObjectOutputStream(byteArrayOutputStream); objectOutputStream.writeObject(object); byte[] buffer=byteArrayOutputStream.toByteArray(); objectOutputStream.close(); byteArrayOutputStream.close();
反序列化
ByteArrayInputStream byteArrayInputStream=new ByteArrayInputStream(buffer); ObjectInputStream objectInputStream=new ObjectInputStream(byteArrayInputStream); Object object=objectInputStream.readObject(); objectInputStream.close(); byteArrayInputStream.close();
测试类源码
public class Test { public static void main(String[] args) throws InterruptedException, IOException, ClassNotFoundException { MyMessage message=new MyMessage("123","456","Hello",new Date()); File file=new File("F://temp"); FileOutputStream outputStream=new FileOutputStream(file); ByteArrayOutputStream byteArrayOutputStream=new ByteArrayOutputStream(); ObjectOutputStream objectOutputStream=new ObjectOutputStream(byteArrayOutputStream); objectOutputStream.writeObject(message); outputStream.write(byteArrayOutputStream.toByteArray()); objectOutputStream.close(); byteArrayOutputStream.close(); outputStream.close(); System.out.println("OK!"); File file2=new File("F://temp"); FileInputStream inputStream=new FileInputStream(file); byte[] buffer = new byte[inputStream.available()]; inputStream.read(buffer); ByteArrayInputStream byteArrayInputStream=new ByteArrayInputStream(buffer); ObjectInputStream objectInputStream=new ObjectInputStream(byteArrayInputStream); MyMessage message2=(MyMessage) objectInputStream.readObject(); System.out.println(message2.toString()); objectInputStream.close(); byteArrayInputStream.close(); inputStream.close(); }}
测试结果为:
OK!
MyMessage [fromIp=123, toIp=456, text=Hello, image=null, date=Wed Sep 30 15:34:45 CST 2015]
0 0
- Java序列化和反序列化
- java 序列化 和反序列化
- java 序列化和反序列化
- java 序列化和反序列化
- [java]序列化和反序列化
- java序列化和反序列化
- java 序列化和反序列化
- java序列化和反序列化
- JAVA序列化和反序列化
- Java 序列化和反序列化
- java 序列化和反序列化
- JAVA序列化和反序列化
- java 序列化和反序列化
- java序列化和反序列化
- java 序列化和反序列化
- java序列化和反序列化
- java序列化和反序列化
- java序列化和反序列化
- Android SDK API 15 各安装包下载地址
- log日志写法
- 在eclipse中启动Tomcat,外部浏览器却无法访问8080端口的解决办法
- ViewPager实现图片的自动轮播和无限循环
- OSI模型之物理层概述
- Java序列化和反序列化
- Kurento模块开发指南之三:开发示例 Chroma Filter
- 标准C++中string类型的用法总结
- N款PHP开源系统推荐
- 1 Introduction to Oracle Clusterware Oracle集群软件介绍
- linux下的动态库(转)
- 千里码-访客统计
- 修改表结构的小知识
- linux内存映射mmap原理分析