- 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存档。
-
方法摘要
所有方法 静态方法 实例方法 具体的方法 变量和类型 方法 描述 voidclose()此方法关闭与此流关联的输入流。static DefaultHandlercreateHandler(Object owner, ExceptionListener el, ClassLoader cl)为SAX解析器创建一个新的处理程序,可用于解析由XMLEncoder类创建的嵌入式XML存档。ExceptionListenergetExceptionListener()获取此流的异常处理程序。ObjectgetOwner()获取此解码器的所有者。ObjectreadObject()从基础输入流中读取下一个对象。voidsetExceptionListener(ExceptionListener exceptionListener)将此流的异常处理程序设置为exceptionListener。voidsetOwner(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:
-
closein界面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
-
-