Java中字节与对象之间的转换

时间:2022-09-24 16:11:52

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