public class POIFSFileSystem extends Object implements POIFSViewable
| Constructor and Description |
|---|
POIFSFileSystem()
Constructor, intended for writing
|
POIFSFileSystem(InputStream stream)
Create a POIFSFileSystem from an InputStream.
|
| Modifier and Type | Method and Description |
|---|---|
DirectoryEntry |
createDirectory(String name)
create a new DirectoryEntry in the root directory
|
DocumentEntry |
createDocument(InputStream stream,
String name)
Create a new document to be added to the root directory
|
DocumentEntry |
createDocument(String name,
int size,
POIFSWriterListener writer)
create a new DocumentEntry in the root entry; the data will be
provided later
|
DocumentInputStream |
createDocumentInputStream(String documentName)
open a document in the root entry's list of entries
|
static InputStream |
createNonClosingInputStream(InputStream is)
Convenience method for clients that want to avoid the auto-close behaviour of the constructor.
|
int |
getBigBlockSize() |
POIFSBigBlockSize |
getBigBlockSizeDetails() |
DirectoryNode |
getRoot()
get the root entry
|
String |
getShortDescription()
Provides a short description of the object, to be used when a
POIFSViewable object has not provided its contents.
|
Object[] |
getViewableArray()
Get an array of objects, some of which may implement
POIFSViewable
|
Iterator |
getViewableIterator()
Get an Iterator of objects, some of which may implement
POIFSViewable
|
static boolean |
hasPOIFSHeader(InputStream inp)
Checks that the supplied InputStream (which MUST
support mark and reset, or be a PushbackInputStream)
has a POIFS (OLE2) header at the start of it.
|
static void |
main(String[] args)
read in a file and write it back out again
|
boolean |
preferArray()
Give viewers a hint as to whether to call getViewableArray or
getViewableIterator
|
void |
writeFilesystem(OutputStream stream)
Write the filesystem out
|
public POIFSFileSystem()
public POIFSFileSystem(InputStream stream) throws IOException
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);
stream - the InputStream from which to read the dataIOException - on errors reading, or on invalid datapublic static InputStream createNonClosingInputStream(InputStream is)
public static boolean hasPOIFSHeader(InputStream inp) throws IOException
inp - An InputStream which supports either mark/reset, or is a PushbackInputStreamIOExceptionpublic DocumentEntry createDocument(InputStream stream, String name) throws IOException
stream - the InputStream from which the document's data
will be obtainedname - the name of the new POIFSDocumentIOException - on error creating the new POIFSDocumentpublic DocumentEntry createDocument(String name, int size, POIFSWriterListener writer) throws IOException
name - the name of the new DocumentEntrysize - the size of the new DocumentEntrywriter - the writer of the new DocumentEntryIOExceptionpublic DirectoryEntry createDirectory(String name) throws IOException
name - the name of the new DirectoryEntryIOException - on name duplicationpublic void writeFilesystem(OutputStream stream) throws IOException
stream - the OutputStream to which the filesystem will be
writtenIOException - thrown on errors writing to the streampublic static void main(String[] args) throws IOException
args - names of the files; arg[ 0 ] is the input file,
arg[ 1 ] is the output fileIOExceptionpublic DirectoryNode getRoot()
public DocumentInputStream createDocumentInputStream(String documentName) throws IOException
documentName - the name of the document to be openedIOException - if the document does not exist or the
name is that of a DirectoryEntrypublic Object[] getViewableArray()
getViewableArray in interface POIFSViewablepublic Iterator getViewableIterator()
getViewableIterator in interface POIFSViewablepublic boolean preferArray()
preferArray in interface POIFSViewablepublic String getShortDescription()
getShortDescription in interface POIFSViewablepublic int getBigBlockSize()
public POIFSBigBlockSize getBigBlockSizeDetails()
Copyright © 2020. All rights reserved.