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只涉及
Object
s。
国际>更多的信息,你也可能想看看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, setPersistenceDelegate
public 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.