Package loci.poi.poifs.filesystem
Class POIFSFileSystem
- java.lang.Object
-
- loci.poi.poifs.filesystem.POIFSFileSystem
-
- All Implemented Interfaces:
POIFSViewable
public class POIFSFileSystem extends java.lang.Object implements POIFSViewable
This is the main class of the POIFS system; it manages the entire life cycle of the filesystem.- Author:
- Marc Johnson (mjohnson at apache dot org)
-
-
Constructor Summary
Constructors Constructor Description POIFSFileSystem()Constructor, intended for writingPOIFSFileSystem(loci.common.RandomAccessInputStream stream, int size)Create a POIFSFileSystem from an InputStream
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description DirectoryEntrycreateDirectory(java.lang.String name)create a new DirectoryEntry in the root directoryDocumentEntrycreateDocument(java.lang.String name, int size, POIFSWriterListener writer)create a new DocumentEntry in the root entry; the data will be provided laterDocumentEntrycreateDocument(loci.common.RandomAccessInputStream stream, java.lang.String name)Create a new document to be added to the root directoryDocumentInputStreamcreateDocumentInputStream(java.lang.String documentName)open a document in the root entry's list of entriesDirectoryEntrygetRoot()get the root entryjava.lang.StringgetShortDescription()Provides a short description of the object, to be used when a POIFSViewable object has not provided its contents.java.lang.Object[]getViewableArray()Get an array of objects, some of which may implement POIFSViewablejava.util.IteratorgetViewableIterator()Get an Iterator of objects, some of which may implement POIFSViewablestatic voidmain(java.lang.String[] args)read in a file and write it back out againbooleanpreferArray()Give viewers a hint as to whether to call getViewableArray or getViewableIteratorvoidwriteFilesystem(java.io.OutputStream stream)Write the filesystem out
-
-
-
Constructor Detail
-
POIFSFileSystem
public POIFSFileSystem()
Constructor, intended for writing
-
POIFSFileSystem
public POIFSFileSystem(loci.common.RandomAccessInputStream stream, int size) throws java.io.IOException
Create a POIFSFileSystem from an InputStream- Parameters:
stream- the InputStream from which to read the data- Throws:
java.io.IOException- on errors reading, or on invalid data
-
-
Method Detail
-
createDocument
public DocumentEntry createDocument(loci.common.RandomAccessInputStream stream, java.lang.String name) throws java.io.IOException
Create a new document to be added to the root directory- Parameters:
stream- the InputStream from which the document's data will be obtainedname- the name of the new POIFSDocument- Returns:
- the new DocumentEntry
- Throws:
java.io.IOException- on error creating the new POIFSDocument
-
createDocument
public DocumentEntry createDocument(java.lang.String name, int size, POIFSWriterListener writer) throws java.io.IOException
create a new DocumentEntry in the root entry; the data will be provided later- Parameters:
name- the name of the new DocumentEntrysize- the size of the new DocumentEntrywriter- the writer of the new DocumentEntry- Returns:
- the new DocumentEntry
- Throws:
java.io.IOException
-
createDirectory
public DirectoryEntry createDirectory(java.lang.String name) throws java.io.IOException
create a new DirectoryEntry in the root directory- Parameters:
name- the name of the new DirectoryEntry- Returns:
- the new DirectoryEntry
- Throws:
java.io.IOException- on name duplication
-
writeFilesystem
public void writeFilesystem(java.io.OutputStream stream) throws java.io.IOExceptionWrite the filesystem out- Parameters:
stream- the OutputStream to which the filesystem will be written- Throws:
java.io.IOException- thrown on errors writing to the stream
-
main
public static void main(java.lang.String[] args) throws java.io.IOExceptionread 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
-
getRoot
public DirectoryEntry getRoot()
get the root entry- Returns:
- the root entry
-
createDocumentInputStream
public DocumentInputStream createDocumentInputStream(java.lang.String documentName) throws java.io.IOException
open a document in the root entry's list of entries- Parameters:
documentName- the name of the document to be opened- Returns:
- a newly opened DocumentInputStream
- Throws:
java.io.IOException- if the document does not exist or the name is that of a DirectoryEntry
-
getViewableArray
public java.lang.Object[] getViewableArray()
Get an array of objects, some of which may implement POIFSViewable- Specified by:
getViewableArrayin interfacePOIFSViewable- Returns:
- an array of Object; may not be null, but may be empty
-
getViewableIterator
public java.util.Iterator getViewableIterator()
Get an Iterator of objects, some of which may implement POIFSViewable- Specified by:
getViewableIteratorin interfacePOIFSViewable- Returns:
- an Iterator; may not be null, but may have an empty back end store
-
preferArray
public boolean preferArray()
Give viewers a hint as to whether to call getViewableArray or getViewableIterator- Specified by:
preferArrayin interfacePOIFSViewable- Returns:
- true if a viewer should call getViewableArray, false if a viewer should call getViewableIterator
-
getShortDescription
public java.lang.String getShortDescription()
Provides a short description of the object, to be used when a POIFSViewable object has not provided its contents.- Specified by:
getShortDescriptionin interfacePOIFSViewable- Returns:
- short description
-
-