Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.poi.poifs.filesystem
Class POIFSFileSystem

    java.lang.Object
      org.apache.poi.poifs.filesystem.BlockStore
          org.apache.poi.poifs.filesystem.NPOIFSFileSystem
              org.apache.poi.poifs.filesystem.POIFSFileSystem

All Implemented Interfaces:
  java.io.Closeable, POIFSViewable

    public class POIFSFileSystem

extends NPOIFSFileSystem
implements POIFSViewable

Transition class for the move from `POIFSFileSystem` to `OPOIFSFileSystem`, and from `NPOIFSFileSystem` to `POIFSFileSystem`.

This has been updated to be powered by the NIO-based NPOIFS `NPOIFSFileSystem`.

Nested Class Summary

Nested classes/interfaces inherited from class org.apache.poi.poifs.filesystem.BlockStore
`BlockStore.ChainLoopDetector`

Constructor Summary
`POIFSFileSystem()` Constructor, intended for writing
`POIFSFileSystem(java.io.File file)` Creates a POIFSFileSystem from a `File`.
`POIFSFileSystem(java.io.File file, boolean readOnly)` Creates a POIFSFileSystem from a `File`.
`POIFSFileSystem(java.io.InputStream stream)` Create a POIFSFileSystem from an `InputStream`.

Method Summary
`static POIFSFileSystem` | `create(java.io.File file)` Creates a new `POIFSFileSystem` in a new `File`.
`static java.io.InputStream` | `createNonClosingInputStream(java.io.InputStream is)` Convenience method for clients that want to avoid the auto-close behaviour of the constructor.
`static void` | `main(java.lang.String[] args)` read in a file and write it back out again

Methods inherited from class org.apache.poi.poifs.filesystem.NPOIFSFileSystem
`close, createBlockIfNeeded, createDirectory, createDocument, createDocument, createDocumentInputStream, createOrUpdateDocument, getBATBlockAndIndex, getBigBlockSize, getBigBlockSizeDetails, getBlockAt, getBlockStoreBlockSize, getChainLoopDetector, getFreeBlock, getHeaderBlock, getMiniStore, getNextBlock, getPropertyTable, getRoot, getShortDescription, getViewableArray, getViewableIterator, hasPOIFSHeader, hasPOIFSHeader, isInPlaceWriteable, preferArray, setNextBlock, size, writeFilesystem, writeFilesystem`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface org.apache.poi.poifs.dev.POIFSViewable
`getShortDescription, getViewableArray, getViewableIterator, preferArray`

Constructor Detail

### POIFSFileSystem

    public POIFSFileSystem()

  Constructor, intended for writing

### POIFSFileSystem

    public POIFSFileSystem(java.io.InputStream stream)
                    throws java.io.IOException

  Create a POIFSFileSystem from an `InputStream`. Normally the stream is read until EOF. The stream is always closed.

  Some streams are usable after reaching EOF (typically those that return `true` for `markSupported()`). In the unlikely case that the caller has such a stream and needs to use it after this constructor completes, a work around is to wrap the stream in order to trap the `close()` call. A convenience method ( `createNonClosingInputStream()`) has been provided for this purpose:

       InputStream wrappedStream = POIFSFileSystem.createNonClosingInputStream(is);
       HSSFWorkbook wb = new HSSFWorkbook(wrappedStream);
       is.reset();
       doSomethingElse(is);

  Note also the special case of `ByteArrayInputStream` for which the `close()` method does nothing.

       ByteArrayInputStream bais = ...
       HSSFWorkbook wb = new HSSFWorkbook(bais); // calls bais.close() !
       bais.reset(); // no problem
       doSomethingElse(bais);

  Parameters:
    `stream` - the InputStream from which to read the data
  Throws:
    `java.io.IOException` - on errors reading, or on invalid data

### POIFSFileSystem

    public POIFSFileSystem(java.io.File file,
                           boolean readOnly)
                    throws java.io.IOException

  Creates a POIFSFileSystem from a `File`. This uses less memory than creating from an `InputStream`.

  Note that with this constructor, you will need to call `NPOIFSFileSystem.close()` when you're done to have the underlying file closed, as the file is kept open during normal operation to read the data out.

  Parameters:
    `readOnly` - whether the POIFileSystem will only be used in read-only mode
    `file` - the File from which to read the data
  Throws:
    `java.io.IOException` - on errors reading, or on invalid data

### POIFSFileSystem

    public POIFSFileSystem(java.io.File file)
                    throws java.io.IOException

  Creates a POIFSFileSystem from a `File`. This uses less memory than creating from an `InputStream`. The File will be opened read-only

  Note that with this constructor, you will need to call `NPOIFSFileSystem.close()` when you're done to have the underlying file closed, as the file is kept open during normal operation to read the data out.

  Parameters:
    `file` - the File from which to read the data
  Throws:
    `java.io.IOException` - on errors reading, or on invalid data

Method Detail

### createNonClosingInputStream

    public static java.io.InputStream createNonClosingInputStream(java.io.InputStream is)

  Convenience method for clients that want to avoid the auto-close behaviour of the constructor.

### create

    public static POIFSFileSystem create(java.io.File file)
                                  throws java.io.IOException

  Creates a new `POIFSFileSystem` in a new `File`. Use `POIFSFileSystem(File)` to open an existing File, this should only be used to create a new empty filesystem.

  Parameters:
    `file` - The file to create and open
  Returns:
    The created and opened `POIFSFileSystem`
  Throws:
    `java.io.IOException`

### main

    public static void main(java.lang.String[] args)
                     throws java.io.IOException

  read in a file and write it back out again

  Parameters:
    `args` - names of the files; arg[ 0 ] is the input file, arg[ 1 ] is the output file
  Throws:
    `java.io.IOException`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright 2017 The Apache Software Foundation or its licensors, as applicable.