org.apache.poi.poifs.filesystem
Enum FileMagic

java.lang.Object
  extended by java.lang.Enum<FileMagic>
      extended by org.apache.poi.poifs.filesystem.FileMagic
All Implemented Interfaces:
java.io.Serializable, java.lang.Comparable<FileMagic>

public enum FileMagic
extends java.lang.Enum<FileMagic>

The file magic number, i.e. the file identification based on the first bytes of the file


Enum Constant Summary
BIFF2
          BIFF2 raw stream - for Excel 2
BIFF3
          BIFF3 raw stream - for Excel 3
BIFF4
          BIFF4 raw stream - for Excel 4
MSWRITE
          Old MS Write raw stream
OLE2
          OLE2 / BIFF8+ stream used for Office 97 and higher documents
OOXML
          OOXML / ZIP stream
PDF
          PDF document
RTF
          RTF document
UNKNOWN
          UNKNOWN magic
XML
          XML file
 
Method Summary
static java.io.InputStream prepareToCheckMagic(java.io.InputStream stream)
          Checks if an InputStream can be reseted (i.e.
static FileMagic valueOf(byte[] magic)
           
static FileMagic valueOf(java.io.InputStream inp)
          Get the file magic of the supplied InputStream (which MUST support mark and reset).
static FileMagic valueOf(java.lang.String name)
          Returns the enum constant of this type with the specified name.
static FileMagic[] values()
          Returns an array containing the constants of this enum type, in the order they are declared.
 
Methods inherited from class java.lang.Enum
clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 

Enum Constant Detail

OLE2

public static final FileMagic OLE2
OLE2 / BIFF8+ stream used for Office 97 and higher documents


OOXML

public static final FileMagic OOXML
OOXML / ZIP stream


XML

public static final FileMagic XML
XML file


BIFF2

public static final FileMagic BIFF2
BIFF2 raw stream - for Excel 2


BIFF3

public static final FileMagic BIFF3
BIFF3 raw stream - for Excel 3


BIFF4

public static final FileMagic BIFF4
BIFF4 raw stream - for Excel 4


MSWRITE

public static final FileMagic MSWRITE
Old MS Write raw stream


RTF

public static final FileMagic RTF
RTF document


PDF

public static final FileMagic PDF
PDF document


UNKNOWN

public static final FileMagic UNKNOWN
UNKNOWN magic

Method Detail

values

public static FileMagic[] values()
Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:
for (FileMagic c : FileMagic.values())
    System.out.println(c);

Returns:
an array containing the constants of this enum type, in the order they are declared

valueOf

public static FileMagic valueOf(java.lang.String name)
Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

Parameters:
name - the name of the enum constant to be returned.
Returns:
the enum constant with the specified name
Throws:
java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
java.lang.NullPointerException - if the argument is null

valueOf

public static FileMagic valueOf(byte[] magic)

valueOf

public static FileMagic valueOf(java.io.InputStream inp)
                         throws java.io.IOException
Get the file magic of the supplied InputStream (which MUST support mark and reset).

If unsure if your InputStream does support mark / reset, use prepareToCheckMagic(InputStream) to wrap it and make sure to always use that, and not the original!

Even if this method returns UNKNOWN it could potentially mean, that the ZIP stream has leading junk bytes

Parameters:
inp - An InputStream which supports either mark/reset
Throws:
java.io.IOException

prepareToCheckMagic

public static java.io.InputStream prepareToCheckMagic(java.io.InputStream stream)
Checks if an InputStream can be reseted (i.e. used for checking the header magic) and wraps it if not

Parameters:
stream - stream to be checked for wrapping
Returns:
a mark enabled stream