- 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 方法 描述 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:
-
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
-
-