public class XMLEncoder extends Encoder implements AutoCloseable
XMLEncoder类是一个另类的
ObjectOutputStream可以用来生成,
ObjectOutputStream可以用来创建对象的二进制表示
Serializable同样一个JavaBean的文本表示形式。例如,以下片段可以用来创建一个文本表示提供的JavaBean和它所有的特性:
xmlencoder E =新XMLEncoder(新的缓冲输出流(新的输出(“测试。XML”)));e.writeobject(新JButton(“你好,世界”));E();尽管他们相似的API,
XMLEncoder班是专为存档图的JavaBeans作为他们的公共属性的文本表示的目的。像java源文件,这样写的文件有一种天然的免疫变化的类的实现涉及。的
ObjectOutputStream继续被推荐用于进程间通信和通用的序列化。
的XMLEncoder类提供JavaBeans它们表示为XML文档符合XML规范的版本1和编码的Unicode / ISO 10646字符集UTF-8字符默认的外延。由XMLEncoder类生成的XML文档:
XMLEncoder类使用冗余消除算法的内部,一个bean的属性的默认值是不写入到流。下面是一个包含来自挥杆工具包的一些用户界面组件的XML文档的例子:
<?xml version=“1”encoding=“utf-8”?>< java版本=“1”class=“java beans。xmldecoder”>
<对象类=“javax.摆动。jframe”>
<无效属性=“名称”>
<字符串>
<字符串>
frame1 /< /空>
<无效属性=“界限”>
<对象类=“java awt,矩形”>
< 0 > > < / int int< 0 > > < / int int< 200 > > < / int int< 200 > > < / int int< /对象>< /空>
<无效的财产=“contentpane”>
<无效方法=“添加”>
<对象类=“javax.摆动。jbutton”>
<无效属性=“标签”>
<字符串>
“你好”
<字符串>
< /空>< /对象>< /空>< /空>
<无效属性=“可见”>
<布尔>
真< /布尔>< /空>< /对象>< / java >
布尔>
无效属性=“可见”>
字符串>
字符串>
无效属性=“标签”>
对象类=“javax.摆动。jbutton”>
无效方法=“添加”>
无效的财产=“contentpane”>
对象类=“java>
无效属性=“界限”>
字符串>
字符串>
无效属性=“名称”>
对象类=“javax.摆动。jframe”> XML语法使用以下约定:
虽然所有的对象图可以使用只是这三个标签,下面的定义包括在内,使常见的数据结构可以更简洁地表达:
Integer类的一个实例可以写:
<国际>
123 < / int >。请注意,
XMLEncoder类使用java反射包之间的转换java的基本类型及其关联的“包装类”是在内部处理。为
XMLEncoder阶级本身的API只涉及
Objects。
国际>更多的信息,你也可能想看看Using XMLEncoder,在秋千上连接的一篇文章。
XMLDecoder,
ObjectOutputStream
| Constructor and Description |
|---|
XMLEncoder(OutputStream out)
创建一个新的XML编码写出来的JavaBeans组件使用xml编码流
out。
|
XMLEncoder(OutputStream out, String charset, boolean declaration, int indentation)
创建一个新的XML编码写出来的JavaBeans的流
out使用给定的
charset从给定的
indentation。
|
| Modifier and Type | Method and Description |
|---|---|
void |
close()
此方法调用
flush,将关闭后再关闭这个流相关的输出流。
|
void |
flush()
这种方法写出来的如果不是已经写好并写出所有的价值观,是自从上次
flush被称为流用XML编码相关的序言。
|
Object |
getOwner()
获取此编码器的所有者。
|
void |
setOwner(Object owner)
设置此编码器的业主
owner。
|
void |
writeExpression(Expression oldExp)
记录表达式,以便在刷新流时,编码器将产生实际输出。
|
void |
writeObject(Object o)
将指定对象的XML表示形式写入输出。
|
void |
writeStatement(Statement oldStm)
记录语句,以便在刷新流时,编码器将产生实际输出。
|
get, getExceptionListener, getPersistenceDelegate, remove, setExceptionListener, setPersistenceDelegatepublic XMLEncoder(OutputStream out)
out。
out -流对象的XML表示形式将写
null
out
IllegalArgumentException
XMLDecoder.XMLDecoder(InputStream)
public XMLEncoder(OutputStream out, String charset, boolean declaration, int indentation)
out使用给定的
charset从给定的
indentation。
out -流对象的XML表示形式将写
charset -请求的字符集的名称;可以是一个名称或别名
declaration无论XML声明应该产生;这个设置
false当嵌入另一个XML文档的内容
indentation -空格字符数缩进整个XML文档
IllegalArgumentException -如果
out或
charset是
null,或者如果
indentation小于0
IllegalCharsetNameException -如果
charset名称是非法的
UnsupportedCharsetException -如果不支持指定的字符中的java虚拟机实例是可用的
UnsupportedOperationException如果加载字符集不支持编码
Charset.forName(String)
public void setOwner(Object owner)
owner。
owner -此编码器的主人。
getOwner()
public Object getOwner()
setOwner(java.lang.Object)
public void writeObject(Object o)
writeObject 方法重写,继承类
Encoder
o -要写入流对象。
XMLDecoder.readObject()
public void writeStatement(Statement oldStm)
此方法只能在初始化调用持久委托的上下文。
writeStatement 方法重写,继承类
Encoder
oldStm的语句将被写入到流。
PersistenceDelegate.initialize(java.lang.Class<?>, java.lang.Object, java.lang.Object, java.beans.Encoder)
public void writeExpression(Expression oldExp)
此方法只能在初始化调用持久委托或设置编码器从资源束阅读语境。
有关使用资源包的xmlencoder,更多信息请参阅HTTP:/ / java。太阳。COM /产品/ JFC / TSC /文章/坚持到底的精神/ # i18n
writeExpression 方法重写,继承类
Encoder
oldExp的表达,将写入到流。
PersistenceDelegate.initialize(java.lang.Class<?>, java.lang.Object, java.lang.Object, java.beans.Encoder)
public void flush()
flush被称为流用XML编码相关的序言。冲洗后,所有写入到该流的值的内部引用都被清除。
public void close()
flush,将关闭后再关闭这个流相关的输出流。
close 接口
AutoCloseable
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.