- java.lang.Object
-
- java.beans.XMLDecoder
-
- All Implemented Interfaces:
-
AutoCloseable
public class XMLDecoder extends Object implements AutoCloseable
XMLDecoder
类用于读取使用XMLEncoder
创建的XML文档,并且像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连接”中的一篇文章。
- 从以下版本开始:
- 1.4
- 另请参见:
-
XMLEncoder
,ObjectInputStream
-
-
构造方法摘要
构造方法 Constructor 描述 XMLDecoder(InputStream in)
创建一个新的输入流,用于阅读由XMLEncoder
类创建的XMLEncoder
。XMLDecoder(InputStream in, Object owner)
创建一个新的输入流,用于阅读由XMLEncoder
类创建的XMLEncoder
。XMLDecoder(InputStream in, Object owner, ExceptionListener exceptionListener)
创建一个新的输入流,用于阅读由XMLEncoder
类创建的XMLEncoder
。XMLDecoder(InputStream in, Object owner, ExceptionListener exceptionListener, ClassLoader cl)
创建一个新的输入流,用于阅读由XMLEncoder
类创建的XMLEncoder
。XMLDecoder(InputSource is)
创建一个新的解码器来解析由XMLEncoder
类创建的XML存档。
-
方法摘要
所有方法 静态方法 接口方法 具体的方法 Modifier and Type 方法 描述 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
。
-
-
-
构造方法详细信息
-
XMLDecoder
public XMLDecoder(InputStream in)
创建一个新的输入流,用于阅读XMLEncoder
类创建的XMLEncoder
。- 参数
-
in
- 底层流。 - 另请参见:
-
XMLEncoder(java.io.OutputStream)
-
XMLDecoder
public XMLDecoder(InputStream in, Object owner)
创建一个新的输入流,用于阅读由XMLEncoder
类创建的XMLEncoder
。- 参数
-
in
- 底层流。 -
owner
- 此流的拥有者。
-
XMLDecoder
public XMLDecoder(InputStream in, Object owner, ExceptionListener exceptionListener)
创建一个新的输入流,用于阅读由XMLEncoder
类创建的XMLEncoder
。- 参数
-
in
- 底层流。 -
owner
- 此流的拥有者。 -
exceptionListener
- 流的异常处理程序; 如果null
将使用默认异常侦听器。
-
XMLDecoder
public XMLDecoder(InputStream in, Object owner, ExceptionListener exceptionListener, ClassLoader cl)
创建一个新的输入流,用于阅读由XMLEncoder
类创建的XMLEncoder
。- 参数
-
in
- 底层流。null
可能null
地传递,尽管生成的XMLDecoder将无用 -
owner
- 此流的所有者。null
是一个合法的价值 -
exceptionListener
- 流的异常处理程序,或null
使用默认值 -
cl
- 用于实例化对象的类加载器。null
表示应该使用默认的类加载器 - 从以下版本开始:
- 1.5
-
XMLDecoder
public XMLDecoder(InputSource is)
创建一个新的解码器来解析由XMLEncoder
类创建的XML存档。 如果输入源is
为null
,则不会抛出异常并且不执行解析。 此行为类似于使用InputStream
作为参数的其他构造函数的行为。- 参数
-
is
- 要解析的输入源 - 从以下版本开始:
- 1.7
-
-
方法详细信息
-
close
public void close()
此方法关闭与此流相关联的输入流。- Specified by:
-
close
在接口AutoCloseable
-
setExceptionListener
public void setExceptionListener(ExceptionListener exceptionListener)
将此流的异常处理程序设置为exceptionListener
。 当此流捕获可恢复的异常时,将通知异常处理程序。- 参数
-
exceptionListener
- 此流的异常处理程序; 如果将使用默认异常侦听器null
。 - 另请参见:
-
getExceptionListener()
-
getExceptionListener
public ExceptionListener getExceptionListener()
获取此流的异常处理程序。- 结果
- 该流的异常处理程序。 如果没有明确设置,将返回默认的异常侦听器。
- 另请参见:
-
setExceptionListener(java.beans.ExceptionListener)
-
readObject
public Object readObject()
从底层输入流读取下一个对象。- 结果
- 下一个对象读取
- 异常
-
ArrayIndexOutOfBoundsException
- 如果流不包含对象(或不再有对象) - 另请参见:
-
XMLEncoder.writeObject(java.lang.Object)
-
setOwner
public void setOwner(Object owner)
将该解码器的所有者设置为owner
。- 参数
-
owner
- 该解码器的所有者。 - 另请参见:
-
getOwner()
-
getOwner
public Object getOwner()
获取此解码器的所有者。- 结果
- 这个解码器的所有者。
- 另请参见:
-
setOwner(java.lang.Object)
-
createHandler
public static DefaultHandler createHandler(Object owner, ExceptionListener el, ClassLoader cl)
为SAX解析器创建一个新的处理程序,可用于解析由XMLEncoder
类创建的嵌入式XML归档。 如果解析的XML文档包含在<java>元素的上下文中的方法调用,则应使用owner
。 在这种情况下,null
值可能会导致非法解析。 如果owner
类不包含预期的调用方法,可能会发生同样的问题。 查看详细here 。- 参数
-
owner
- 可以用作<java>元素值的默认处理程序的所有者 -
el
- 解析器的异常处理程序,或null
使用默认异常处理程序 -
cl
- 用于实例化对象的类加载器,或null
使用默认的类加载器 - 结果
-
SAX解析器的一个实例为
DefaultHandler
- 从以下版本开始:
- 1.7
-
-