Module java.desktop
Package java.beans

Class XMLDecoder

java.lang.Object
java.beans.XMLDecoder
所有已实现的接口:
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();
 

更多信息,您可能还想查看JavaBeans组件的长期持久性: XML模式,这是The Swing Connection中的一篇文章。

自版本:
1.4
另请参阅:
  • Constructor Details

    • XMLDecoder

      public XMLDecoder(InputStream in)
      创建一个新的输入流,用于读取由XMLEncoder类创建的存档。
      参数:
      in - 底层流。
      另请参阅:
    • XMLDecoder

      public XMLDecoder(InputStream in, Object owner)
      创建一个新的输入流,用于读取由XMLEncoder类创建的存档。
      参数:
      in - 底层流。
      owner - 此流的所有者。
    • XMLDecoder

      public XMLDecoder(InputStream in, Object owner, ExceptionListener exceptionListener)
      创建一个新的输入流,用于读取由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

      public XMLDecoder(InputSource is)
      创建一个新的解码器,用于解析由XMLEncoder类创建的XML存档。如果输入源isnull,则不会抛出异常,也不会执行解析。此行为类似于其他使用InputStream作为参数的构造函数的行为。
      参数:
      is - 要解析的输入源
      自版本:
      1.7
  • Method Details

    • close

      public void close()
      此方法关闭与此流关联的输入流。
      指定者:
      close 在接口 AutoCloseable
    • setExceptionListener

      public void setExceptionListener(ExceptionListener exceptionListener)
      将此流的异常处理程序设置为exceptionListener。当此流捕获可恢复异常时,将通知异常处理程序。
      参数:
      exceptionListener - 此流的异常处理程序;如果为null,将使用默认异常侦听器。
      另请参阅:
    • getExceptionListener

      public ExceptionListener getExceptionListener()
      获取此流的异常处理程序。
      返回:
      此流的异常处理程序。如果未明确设置,则将返回默认异常侦听器。
      另请参阅:
    • readObject

      public Object readObject()
      从底层输入流中读取下一个对象。
      返回:
      读取的下一个对象
      抛出:
      ArrayIndexOutOfBoundsException - 如果流不包含对象(或没有更多对象)
      另请参阅:
    • setOwner

      public void setOwner(Object owner)
      将此解码器的所有者设置为owner
      参数:
      owner - 此解码器的所有者。
      另请参阅:
    • getOwner

      public Object getOwner()
      获取此解码器的所有者。
      返回:
      此解码器的所有者。
      另请参阅:
    • createHandler

      public static DefaultHandler createHandler(Object owner, ExceptionListener el, ClassLoader cl)
      创建一个新的处理程序,用于SAX解析器,可用于解析由XMLEncoder类创建的嵌入式XML存档。如果解析的XML文档中包含 元素上下文中的方法调用,则应使用 owner。在这种情况下, null值可能导致非法解析。如果 owner类不包含预期的方法调用,则可能会出现相同的问题。详细信息请参见 这里
      参数:
      owner - 可用作 元素值的默认处理程序的所有者
      el - 解析器的异常处理程序,或null以使用默认异常处理程序
      cl - 用于实例化对象的类加载器,或null以使用默认类加载器
      返回:
      用于SAX解析器的DefaultHandler实例
      自版本:
      1.7