- java.lang.Object
-
- java.beans.XMLDecoder
-
- 实现的所有接口
-
AutoCloseable
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 , The Swing Connection中的一篇文章。
- 从以下版本开始:
- 1.4
- 另请参见:
-
XMLEncoder
,ObjectInputStream
-
-
构造方法摘要
构造方法 构造器 描述 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存档。
-
方法摘要
所有方法 静态方法 实例方法 具体的方法 变量和类型 方法 描述 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
in界面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
-
-