用Base64对JAVA对象进行转码
2016-05-11 08:53
459 查看
**
* xml传递<a href="http://lib.csdn.net/base/17" class='replace_word' title="Java EE知识库" target='_blank' style='color:#df3434; font-weight:bold;'>Java</a>对象字节流
*/
try {
//初始化Java对象
Message msg = new Message();
msg.setStatus(Message.HELLO);
msg.setMessage("come from china!");
//序列化对象
ByteArrayOutputStream bOut = new ByteArrayOutputStream();
ObjectOutputStream objOut = new ObjectOutputStream(bOut);
objOut.writeObject(msg);
//base64 encode
BASE64Encoder encode = new BASE64Encoder();
String xmlStr = encode.encode(bOut.toByteArray());
//xml file string
StringBuffer xmlFile = new StringBuffer();
xmlFile.append("<?xml version=/"1.0/" encoding=/"UTF-8/"?>")
.append("<rule>")
.append("<obj>"+xmlStr+"</obj>")
.append("</rule>");
System.out.println("xml: "+xmlFile.toString());
//parse xml
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(new ByteArrayInputStream(xmlFile.toString().getBytes()));
Element root = (Element) doc.getElementsByTagName("obj").item(0);
String xmlNode = root.getFirstChild().getNodeValue();
//base64 decode
BASE64Decoder decode = new BASE64Decoder();
byte[] objBytes = decode.decodeBuffer(xmlNode);
//反序列化
ByteArrayInputStream bIn = new ByteArrayInputStream(objBytes);
ObjectInputStream objIn = new ObjectInputStream(bIn);
Object obj = objIn.readObject();
if(obj != null){
if (obj instanceof Message) {
Message m = (Message)obj;
System.out.println("Status: "+m.getStatus());
System.out.println(m.getMessage());
}
}
} catch (Exception e) {
e.printStackTrace();
}
* xml传递<a href="http://lib.csdn.net/base/17" class='replace_word' title="Java EE知识库" target='_blank' style='color:#df3434; font-weight:bold;'>Java</a>对象字节流
*/
try {
//初始化Java对象
Message msg = new Message();
msg.setStatus(Message.HELLO);
msg.setMessage("come from china!");
//序列化对象
ByteArrayOutputStream bOut = new ByteArrayOutputStream();
ObjectOutputStream objOut = new ObjectOutputStream(bOut);
objOut.writeObject(msg);
//base64 encode
BASE64Encoder encode = new BASE64Encoder();
String xmlStr = encode.encode(bOut.toByteArray());
//xml file string
StringBuffer xmlFile = new StringBuffer();
xmlFile.append("<?xml version=/"1.0/" encoding=/"UTF-8/"?>")
.append("<rule>")
.append("<obj>"+xmlStr+"</obj>")
.append("</rule>");
System.out.println("xml: "+xmlFile.toString());
//parse xml
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(new ByteArrayInputStream(xmlFile.toString().getBytes()));
Element root = (Element) doc.getElementsByTagName("obj").item(0);
String xmlNode = root.getFirstChild().getNodeValue();
//base64 decode
BASE64Decoder decode = new BASE64Decoder();
byte[] objBytes = decode.decodeBuffer(xmlNode);
//反序列化
ByteArrayInputStream bIn = new ByteArrayInputStream(objBytes);
ObjectInputStream objIn = new ObjectInputStream(bIn);
Object obj = objIn.readObject();
if(obj != null){
if (obj instanceof Message) {
Message m = (Message)obj;
System.out.println("Status: "+m.getStatus());
System.out.println(m.getMessage());
}
}
} catch (Exception e) {
e.printStackTrace();
}
相关文章推荐
- 转:Struts2<s:iterator value="" var="lst">中var的使用和一些标签的使用体会
- 《java入门第一季》之正则表达式常见规则
- 《java入门第一季》之正则表达式常见规则
- spring源码分析之spring-web remoting模块概况及基本概念
- java二分查找
- 《java入门第一季》之Character类小案例
- 《java入门第一季》之Character类小案例
- Eclipse的更新和安装插件
- java中set接口使用方法详解
- 《java入门第一季》之Integer类和自动拆装箱概述
- 《java入门第一季》之Integer类和自动拆装箱概述
- JAVA细粒度锁实现的几种方式
- 从JDK源码角度看java并发的公平性
- 从JDK源码角度看java并发的公平性
- Spring MVC跳转结果的方式
- 如何理解和使用java package
- java线程
- java线程
- Spring定时任务的几种实现
- Spring事务的五种实现方式