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

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

Java中字节与对象之间的转换的相关文章

Java中字符串与日期之间的转换

项目过程中,经常遇到需要字符串格式的日期和Date类型的日期之间的相互转换.使用SimpleDateFormat类,可以方便完成想要的转换. SimpleDateFormat能够实现本地化的时间格式化及转换.从选定一个自定义的模式(pattren)开始,模式由已经定义好的 'A' to 'Z' 及 'a' to 'z'字母组成,也可以在模式中引入文本,但要使用’(单括号)括住.下图就是已经定义好的模式字母表: Letter Date or Time Component Presentation

Java 中基本类型和字符串之间的转换

Java 中基本类型和字符串之间的转换 在程序开发中,我们经常需要在基本数据类型和字符串之间进行转换. 其中,基本类型转换为字符串有三种方法: 1. 使用包装类的 toString() 方法 2. 使用String类的 valueOf() 方法 3. 用一个空字符串加上基本类型,得到的就是基本类型数据对应的字符串 再来看,将字符串转换成基本类型有两种方法: 1. 调用包装类的 parseXxx 静态方法 2. 调用包装类的 valueOf() 方法转换为基本类型的包装类,会自动拆箱 PS:其他基

JAVA中list,set,数组之间的转换详解

JAVA的list,set,数组之间的转换,主要是使用Apache Jakarta Commons Collections,具体的方法如下:import org.apache.commons.collections.CollectionUtils; String[] strArray = {"aaa", "bbb", "ccc"};    List strList = new ArrayList();    Set strSet = new Ha

Java基础(35):装箱与拆箱---Java 中基本类型和包装类之间的转换

基本类型和包装类之间经常需要互相转换,以 Integer 为例(其他几个包装类的操作雷同哦): 在 JDK1.5 引入自动装箱和拆箱的机制后,包装类和基本类型之间的转换就更加轻松便利了. 那什么是装箱和拆箱呢?我们分别来看下 装箱:把基本类型转换成包装类,使其具有对象的性质,又可分为手动装箱和自动装箱 拆箱:和装箱相反,把包装类对象转换成基本类型的值,又可分为手动拆箱和自动拆箱 下面的代码的例子演示了装箱与拆箱的过程: 结果为: 1 public class HelloWorld { 2 pub

java中日期与字符串之间的转换

import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date; public class DateUtil { private DateUtil() { } /** * 将日期格式转换成一个字符串 * @param d * 被转换的日期对象 * @param format * 传递过来的要被转换的格式 * @return * 转换后的字符串 */ public static Stri

如何在String和Byte[]对象之间进行转换

分析问题 字符串和字节数组之间的转换,事实上代表了现实世界信息和数字世界信息之间的转换,要理解其中的机制,需要先了解一下几个概念. 1.比特. 比特(bit)是指一个位,它可以说是计算机内物理保存的最近本单元.现在的计算机体系采用二进制逻辑,即一个基本单元可以保存两种数值:0和1.这是因为0.1机制可以用多种物理系统来表示,例如高电平和低电平.二极管的导通和关闭.磁场的正极和负极等.总之,一个比特就是一个二进制位. 2.字节. 一个字节(byte),在C#中是由8个比特来构成的.它的值可以有一个

url字符串和对象之间的转换

这里会涉及两个需求,有时候,我们想将获得的url字符串按键值对的形式保存成一个对象,用location.search获得url参数字符串,这里不考虑location.pathname和location.hash. url字符串对象化 1 var urlToObj = function (){ 2 var search = this.replace(/^\s+|\s+$/, '').match(/([^?#]*)(#.*)?$/); 3 if( !search ){ 4 return {}; 5

C++中数字与字符串之间的转换,别人的,

C++中数字与字符串之间的转换 1.字符串数字之间的转换 (1)string --> char *   string str("OK");   char * p = str.c_str(); (2)char * -->string   char *p = "OK";   string str(p); (3)char * -->CString    char *p ="OK";   CString m_Str(p);   //或者

如何在DateTime对象和字符串对象之间进行转换

分析问题 DateTime对象输出到字符串的使用概率非常高,DateTime结构实现了四个ToString方法,下表列出了四个方法的特性: 方法 说明 ToString() 效果等同于ToString("G")和ToString("G",null) DateTime.ToString(IFormatProvider) 由用户提供的格式化对象来进行格式化 DateTime.ToString(String) 由特定的字符串来表示各种格式 DateTime.ToStrin