java.lang.Object
java.beans.XMLDecoder
- 所有已实现的接口:
-
AutoCloseable
XMLDecoder
类用于读取使用XMLEncoder
创建的XML文档,使用方式类似于ObjectInputStream
。例如,可以使用以下片段读取由XMLEncoder
类编写的XML文档中定义的第一个对象:
XMLDecoder d = new XMLDecoder( new BufferedInputStream( new FileInputStream("Test.xml"))); Object result = d.readObject(); d.close();
更多信息,您可能还想查看JavaBeans组件的长期持久性: XML模式,这是The Swing Connection中的一篇文章。
- 自版本:
- 1.4
- 另请参阅:
-
Constructor Summary
ConstructorDescription创建一个新的输入流,用于读取由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
类创建的存档。创建一个新的解码器,用于解析由XMLEncoder
类创建的XML存档。 -
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
此方法关闭与此流关联的输入流。static DefaultHandler
createHandler
(Object owner, ExceptionListener el, ClassLoader cl) 创建一个新的SAX解析器处理程序,可用于解析由XMLEncoder
类创建的嵌入式XML存档。获取此流的异常处理程序。getOwner()
获取此解码器的所有者。从底层输入流中读取下一个对象。void
setExceptionListener
(ExceptionListener exceptionListener) 将此流的异常处理程序设置为exceptionListener
。void
将此解码器的所有者设置为owner
。
-
Constructor Details
-
XMLDecoder
创建一个新的输入流,用于读取由XMLEncoder
类创建的存档。- 参数:
-
in
- 底层流。 - 另请参阅:
-
XMLDecoder
创建一个新的输入流,用于读取由XMLEncoder
类创建的存档。- 参数:
-
in
- 底层流。 -
owner
- 此流的所有者。
-
XMLDecoder
创建一个新的输入流,用于读取由XMLEncoder
类创建的存档。- 参数:
-
in
- 底层流。 -
owner
- 此流的所有者。 -
exceptionListener
- 流的异常处理程序;如果为null
,将使用默认异常侦听器。
-
XMLDecoder
public XMLDecoder(InputStream in, Object owner, ExceptionListener exceptionListener, ClassLoader cl) 创建一个新的输入流,用于读取由XMLEncoder
类创建的存档。- 参数:
-
in
- 底层流。可以传递null
而不会出错,但生成的XMLDecoder将无用。 -
owner
- 此流的所有者。null
是合法值。 -
exceptionListener
- 流的异常处理程序,或null
以使用默认值。 -
cl
- 用于实例化对象的类加载器。null
表示应使用默认类加载器。 - 自版本:
- 1.5
-
XMLDecoder
创建一个新的解码器,用于解析由XMLEncoder
类创建的XML存档。如果输入源is
为null
,则不会抛出异常,也不会执行解析。此行为类似于其他使用InputStream
作为参数的构造函数的行为。- 参数:
-
is
- 要解析的输入源 - 自版本:
- 1.7
-
-
Method Details
-
close
public void close()此方法关闭与此流关联的输入流。- 指定者:
-
close
在接口AutoCloseable
中
-
setExceptionListener
将此流的异常处理程序设置为exceptionListener
。当此流捕获可恢复异常时,将通知异常处理程序。- 参数:
-
exceptionListener
- 此流的异常处理程序;如果为null
,将使用默认异常侦听器。 - 另请参阅:
-
getExceptionListener
获取此流的异常处理程序。- 返回:
- 此流的异常处理程序。如果未明确设置,则将返回默认异常侦听器。
- 另请参阅:
-
readObject
从底层输入流中读取下一个对象。- 返回:
- 读取的下一个对象
- 抛出:
-
ArrayIndexOutOfBoundsException
- 如果流不包含对象(或没有更多对象) - 另请参阅:
-
setOwner
将此解码器的所有者设置为owner
。- 参数:
-
owner
- 此解码器的所有者。 - 另请参阅:
-
getOwner
获取此解码器的所有者。- 返回:
- 此解码器的所有者。
- 另请参阅:
-
createHandler
创建一个新的处理程序,用于SAX解析器,可用于解析由XMLEncoder
类创建的嵌入式XML存档。如果解析的XML文档中包含元素上下文中的方法调用,则应使用 owner
。在这种情况下,null
值可能导致非法解析。如果owner
类不包含预期的方法调用,则可能会出现相同的问题。详细信息请参见 这里。- 参数:
-
owner
- 可用作元素值的默认处理程序的所有者 -
el
- 解析器的异常处理程序,或null
以使用默认异常处理程序 -
cl
- 用于实例化对象的类加载器,或null
以使用默认类加载器 - 返回:
-
用于SAX解析器的
DefaultHandler
实例 - 自版本:
- 1.7
-