对象和xml相互转换工具XMLEncoder,XMLDecoder
来源:互联网 发布:青岛淘宝美工培训 编辑:程序博客网 时间:2024/06/07 05:18
基本的介绍:
1.XMLEncoder
类是 ObjectOutputStream
的互补替换,可用于生成 JavaBean 的文本表示形式,所使用方式与用 ObjectOutputStream
创建 Serializable
对象的二进制表示形式的方式相同
2.XMLDecoder
类用于读取使用 XMLEncoder
创建的 XML 文档,用途类似于ObjectInputStream
。
XMLEncoder和XMLDecoder和ObjectOutputStream创建的Serializable对象的区别,前者转换的对象,不必实现serializable,同时对transient这个关键词不过敏。
具体的代码实现如下:
1.javaBean对象
package com.xmlencoder;
public class Person{
private int id;
private String name;
private String content;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
}
测试的代码:
package com.xmlencoder;
import java.beans.XMLDecoder;
import java.beans.XMLEncoder;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
public class ObjectToXmlUtil {
public static void writeXml() {
try {
XMLEncoder e= new XMLEncoder(new BufferedOutputStream(new FileOutputStream("C:\\Users\\Admin\\Desktop\\Test.xml")));
Person person = new Person();
person.setId(1);
person.setName("tan");
person.setContent("备注的信息");
e.writeObject(person);
e.close();
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
}
public static void readXml(){
try {
XMLDecoder d=new XMLDecoder(new BufferedInputStream(new FileInputStream("C:\\Users\\Admin\\Desktop\\Test.xml")));
Person p=(Person) d.readObject();
System.out.println(p.getId()+"--"+p.getName()+"--"+p.getContent());
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
ObjectToXmlUtil.writeXml();
// ObjectToXmlUtil.readXml();//1
System.out.println("hello");//2
}
}
代码1处输出效果
<?xml version="1.0" encoding="UTF-8"?>
<java version="1.8.0_92" class="java.beans.XMLDecoder">
<object class="com.xmlencoder.Person">
<void property="content">
<string>备注的信息</string>
</void>
<void property="id">
<int>1</int>
</void>
<void property="name">
<string>tan</string>
</void>
</object>
</java>
代码2处的输出效果:
1--tan--备注的信息
- 对象和xml相互转换工具XMLEncoder,XMLDecoder
- 使用XMLEncoder/XMLDecoder和DocumentBuilder实现XML和String互相转换
- java.beans包的XMLEncoder和XMLDecoder实现实体与xml转换
- XMLDecoder/XMLEncoder
- java.beans包的XMLEncoder和XMLDecoder
- XMLDecoder和 XMLEncoder 的样例
- XMLDecoder和 XMLEncoder 的样例
- 用XMLEncoder和XMLDecoder创建并解析XML文件Java实例
- Swing之保存窗口对象XMLEncoder和XMLDecoder 类使用示例
- XML 和 java对象相互转换
- XML 和 java对象相互转换
- XML数组和对象相互转换
- XML 和 java对象相互转换
- XML 和 java对象相互转换
- JAXB-java对象和xml相互转换
- XML 和 java对象相互转换
- Java对象和XML相互转换
- XML和对象相互转换的方法
- 216. Combination Sum III
- vue 自定义指令 focus 条件聚焦 时,在与v-if共存时需要处理的问题
- 函数
- Shell学习之传递参数
- Eclipse常用设置
- 对象和xml相互转换工具XMLEncoder,XMLDecoder
- Android第三方库隔离之对第三方图片加载库的隔离
- api-ms-win-crt-runtimel1-1-0.dll缺失
- 多线程的创建与运行
- xcode archive 去掉dsym文件和添加dsym文件
- SpringBoot-SpringData-懒加载
- 从iOS开发到后端接口开发(中)
- Java有趣逻辑编程题
- 中文字号VS英文字号(磅)VS像素值的对应关系: