最近公司里面用到了消息队列,而正如我们知道的是消息队列之间的是通过二进制形式的,下面就分享一下java中字节与对象之间的转换。
主要是用到了ByteArrayOutputStream和ObjectOutputStream两个输出流,以及ByteArrayInputStream和ObjectInputStream两个输入流。废话不多说了,直接上代码吧!
- /**
- * @FileName: ByteToObject.java
- * @Package:com.test
- * @Description: TODO
- * @author: LUCKY
- * @date:2015年12月25日 下午12:18:08
- * @version V1.0
- */
- package com.test;
- import java.io.ByteArrayInputStream;
- import java.io.ByteArrayOutputStream;
- import java.io.ObjectInputStream;
- import java.io.ObjectOutputStream;
- import java.util.HashMap;
- import java.util.Map;
- /**
- * @ClassName: ByteToObject
- * @Description: 字节与对象之间的转换
- * @author: LUCKY
- * @date:2015年12月25日 下午12:18:08
- */
- public class ByteToObject {
- public static void main(String[] args) throws Exception {
- Student stu=new Student();
- stu.setAge("15");
- stu.setName("张三");
- Map<String, String> map=new HashMap<String, String>();
- map.put("001", "001");
- map.put("002", "002");
- stu.setWage(map);
- ByteArrayOutputStream byt=new ByteArrayOutputStream();
- ObjectOutputStream obj=new ObjectOutputStream(byt);
- obj.writeObject(stu);
- byte[] bytes=byt.toByteArray();
- System.out.println(bytes);
- ByteArrayInputStream byteInt=new ByteArrayInputStream(bytes);
- ObjectInputStream objInt=new ObjectInputStream(byteInt);
- Student stu2=new Student();
- stu2=(Student)objInt.readObject();
- System.out.println(stu2);
- }
- }