近期公司里面用到了消息队列,而正如我们知道的是消息队列之间的是通过二进制形式的。以下就分享一下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); } }