Object转byte[];byte[]转Object

对象转数组,数组转对象   

序列化一个对象,反序列化一个对象就是如此  

Java代码
 
复制代码
package com.digican.utils;   

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

import com.digican.javabean.TestBean;

public class ObjectAndByte {

/**
* 对象转数组
* @param obj
* @return
*/
public byte[] toByteArray (Object obj) {
byte[] bytes = null;
ByteArrayOutputStream bos
= new ByteArrayOutputStream();
try {
ObjectOutputStream oos
= new ObjectOutputStream(bos);
oos.writeObject(obj);
oos.flush();
bytes
= bos.toByteArray ();
oos.close();
bos.close();
}
catch (IOException ex) {
ex.printStackTrace();
}
return bytes;
}

/**
* 数组转对象
* @param bytes
* @return
*/
public Object toObject (byte[] bytes) {
Object obj
= null;
try {
ByteArrayInputStream bis
= new ByteArrayInputStream (bytes);
ObjectInputStream ois
= new ObjectInputStream (bis);
obj
= ois.readObject();
ois.close();
bis.close();
}
catch (IOException ex) {
ex.printStackTrace();
}
catch (ClassNotFoundException ex) {
ex.printStackTrace();
}
return obj;
}

public static void main(String[] args) {
TestBean tb
= new TestBean();
tb.setName(
"daqing");
tb.setValue(
"1234567890");

ObjectAndByte oa
= new ObjectAndByte();
byte[] b = oa.toByteArray(tb);
System.
out.println(new String(b));

System.
out.println("=======================================");

TestBean teb
= (TestBean) oa.toObject(b);
System.
out.println(teb.getName());
System.
out.println(teb.getValue());
}

}
复制代码
复制代码
package com.digican.javabean;   

import java.io.Serializable;

public class TestBean implements Serializable{

private String name;

private String value;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getValue() {
return value;
}

public void setValue(String value) {
this.value = value;
}

}
复制代码

posted @   cpcpc  阅读(43875)  评论(1编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
点击右上角即可分享
微信分享提示