public class XMLDecoder extends Object implements AutoCloseable
XMLDecoder
类用于读取使用创建的XML文档XMLEncoder
,并用于就像ObjectInputStream
。
例如,可以使用以下片段来读取由XMLEncoder
类编写的XML文档中定义的第一个对象:
XMLDecoder d = new XMLDecoder(
new BufferedInputStream(
new FileInputStream("Test.xml")));
Object result = d.readObject();
d.close();
有关更多信息,您可能还需要查看Long Term Persistence of JavaBeans Components: XML Schema , “Swing连接”中的一篇文章。
XMLEncoder
, ObjectInputStream
Constructor and Description |
---|
XMLDecoder(InputSource is)
创建一个新的解码器来解析由
XMLEncoder 类创建的XML存档。
|
XMLDecoder(InputStream in)
创建一个新的输入流,用于阅读由
XMLEncoder 类创建的档案。
|
XMLDecoder(InputStream in, Object owner)
创建一个新的输入流,用于阅读由
XMLEncoder 类创建的档案。
|
XMLDecoder(InputStream in, Object owner, ExceptionListener exceptionListener)
创建一个新的输入流,用于阅读由
XMLEncoder 类创建的归档。
|
XMLDecoder(InputStream in, Object owner, ExceptionListener exceptionListener, ClassLoader cl)
创建一个新的输入流,用于阅读由
XMLEncoder 类创建的归档。
|
Modifier and Type | Method and Description |
---|---|
void |
close()
此方法关闭与此流相关联的输入流。
|
static DefaultHandler |
createHandler(Object owner, ExceptionListener el, ClassLoader cl)
为SAX解析器创建一个新的处理程序,可用于解析由
XMLEncoder 类创建的嵌入式XML归档。
|
ExceptionListener |
getExceptionListener()
获取此流的异常处理程序。
|
Object |
getOwner()
获取此解码器的所有者。
|
Object |
readObject()
从底层输入流读取下一个对象。
|
void |
setExceptionListener(ExceptionListener exceptionListener)
将此流的异常处理程序设置为
exceptionListener 。
|
void |
setOwner(Object owner)
将此解码器的所有者设置为
owner 。
|
public XMLDecoder(InputStream in)
XMLEncoder
类创建的档案。
in
- 基础流。
XMLEncoder.XMLEncoder(java.io.OutputStream)
public XMLDecoder(InputStream in, Object owner)
XMLEncoder
类创建的归档。
in
- 底层流。
owner
- 此流的所有者。
public XMLDecoder(InputStream in, Object owner, ExceptionListener exceptionListener)
XMLEncoder
类创建的档案。
in
- 底层流。
owner
- 此流的所有者。
exceptionListener
- 流的异常处理程序;
如果null
将使用默认异常侦听器。
public XMLDecoder(InputStream in, Object owner, ExceptionListener exceptionListener, ClassLoader cl)
XMLEncoder
类创建的档案。
in
- 基础流。
null
可能null
地传递,尽管生成的XMLDecoder将无用
owner
- 此流的所有者。
null
是一个合法的价值
exceptionListener
- 流的异常处理程序,或
null
使用默认值
cl
- 用于实例化对象的类加载器。
null
表示应该使用默认的类加载器
public XMLDecoder(InputSource is)
XMLEncoder
类创建的XML存档。
如果输入源is
为null
,则不会抛出异常,并且不执行解析。
此行为类似于使用InputStream
作为参数的其他构造函数的行为。
is
- 要解析的输入源
public void close()
close
在界面
AutoCloseable
public void setExceptionListener(ExceptionListener exceptionListener)
exceptionListener
。
当此流捕获可恢复的异常时,将通知异常处理程序。
exceptionListener
- 此流的异常处理程序
如果null
将使用默认异常侦听器。
getExceptionListener()
public ExceptionListener getExceptionListener()
setExceptionListener(java.beans.ExceptionListener)
public Object readObject()
ArrayIndexOutOfBoundsException
- 如果流不包含对象(或不再有对象)
XMLEncoder.writeObject(java.lang.Object)
public void setOwner(Object owner)
owner
。
owner
- 该解码器的所有者。
getOwner()
public Object getOwner()
setOwner(java.lang.Object)
public static DefaultHandler createHandler(Object owner, ExceptionListener el, ClassLoader cl)
XMLEncoder
类创建的嵌入式XML归档。
如果解析的XML文档包含在<java>元素的上下文中的方法调用,则应使用owner
。
在这种情况下, null
值可能会导致非法解析。
如果owner
类不包含预期的调用方法,也可能会出现同样的问题。
详见here 。
owner
- 可以用作<java>元素值的默认处理程序的所有者
el
- 解析器的异常处理程序,或
null
使用默认异常处理程序
cl
- 用于实例化对象的类加载器,或
null
使用默认的类加载器
DefaultHandler
的实例