Enum 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

      Enum Constants 
      Enum Constant Description
      BIFF2
      BIFF2 raw stream - for Excel 2
      BIFF3
      BIFF3 raw stream - for Excel 3
      BIFF4
      BIFF4 raw stream - for Excel 4
      HTML
      Some different HTML documents
      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
      WORD2  
      XML
      XML file
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static java.io.InputStream prepareToCheckMagic​(java.io.InputStream stream)
      Checks if an InputStream can be reset (i.e.
      static FileMagic valueOf​(byte[] magic)
      Returns the enum constant of this type with the specified name.
      static FileMagic valueOf​(java.io.File inp)
      Get the file magic of the supplied File
      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

        compareTo, equals, 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
      • HTML

        public static final FileMagic HTML
        Some different HTML documents
      • 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)
        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:
        magic - 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​(java.io.File inp)
                                 throws java.io.IOException
        Get the file magic of the supplied File

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

        Parameters:
        inp - a file to be identified
        Throws:
        java.io.IOException
      • 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 reset (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