Java序列化和反序列化
2015-09-30 15:36
507 查看
简介
序列化是将实例化对象转换成字节数组,反序列化是将字节数组转换成对象。实例
前提
使需要序列化的类实现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]
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- Python动态类型的学习---引用的理解
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树