Class POIFSReader

java.lang.Object
org.apache.poi.poifs.eventfilesystem.POIFSReader

public class POIFSReader extends Object
An event-driven reader for POIFS file systems. Users of this class first create an instance of it, then use the registerListener methods to register POIFSReaderListener instances for specific documents. Once all the listeners have been registered, the read() method is called, which results in the listeners being notified as their documents are read.
  • Constructor Details

    • POIFSReader

      public POIFSReader()
  • Method Details

    • read

      public void read(InputStream stream) throws IOException
      Read from an InputStream and process the documents we get
      Parameters:
      stream - the InputStream from which to read the data
      Throws:
      IOException - on errors reading, or on invalid data
    • read

      public void read(File poifsFile) throws IOException
      Read from a File and process the documents we get
      Parameters:
      poifsFile - the file from which to read the data
      Throws:
      IOException - on errors reading, or on invalid data
    • read

      public void read(POIFSFileSystem poifs) throws IOException
      Read from a NPOIFSFileSystem and process the documents we get
      Parameters:
      poifs - the NPOIFSFileSystem from which to read the data
      Throws:
      IOException - on errors reading, or on invalid data
    • registerListener

      public void registerListener(POIFSReaderListener listener)
      Register a POIFSReaderListener for all documents
      Parameters:
      listener - the listener to be registered
      Throws:
      NullPointerException - if listener is null
      IllegalStateException - if read() has already been called
    • registerListener

      public void registerListener(POIFSReaderListener listener, String name)
      Register a POIFSReaderListener for a document in the root directory
      Parameters:
      listener - the listener to be registered
      name - the document name
      Throws:
      NullPointerException - if listener is null or name is null or empty
      IllegalStateException - if read() has already been called
    • registerListener

      public void registerListener(POIFSReaderListener listener, POIFSDocumentPath path, String name)
      Register a POIFSReaderListener for a document in the specified directory
      Parameters:
      listener - the listener to be registered
      path - the document path; if null, the root directory is assumed
      name - the document name
      Throws:
      NullPointerException - if listener is null or name is null or empty
      IllegalStateException - if read() has already been called
    • setNotifyEmptyDirectories

      public void setNotifyEmptyDirectories(boolean notifyEmptyDirectories)
      Activates the notification of empty directories.

      If this flag is activated, the listener receives POIFSReaderEvents with nulled name and stream

      Parameters:
      notifyEmptyDirectories - if true, empty directories will be notified
    • main

      public static void main(String[] args) throws IOException
      read in files
      Parameters:
      args - names of the files
      Throws:
      IOException - if the files can't be read or have invalid content