Class Pack200CompressorInputStream

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable

    public class Pack200CompressorInputStream
    extends CompressorInputStream
    An input stream that decompresses from the Pack200 format to be read as any other stream.

    The getBytesRead methods always return 0.

    Since:
    1.3
    • Field Detail

      • CAFE_DOOD

        private static final byte[] CAFE_DOOD
      • SIG_LENGTH

        private static final int SIG_LENGTH
      • originalInputStream

        private final java.io.InputStream originalInputStream
    • Constructor Detail

      • Pack200CompressorInputStream

        public Pack200CompressorInputStream​(java.io.File file)
                                     throws java.io.IOException
        Decompresses the given file, caching the decompressed data in memory.
        Parameters:
        file - the file to decompress
        Throws:
        java.io.IOException - if reading fails
      • Pack200CompressorInputStream

        public Pack200CompressorInputStream​(java.io.File file,
                                            java.util.Map<java.lang.String,​java.lang.String> properties)
                                     throws java.io.IOException
        Decompresses the given file, caching the decompressed data in memory and using the given properties.
        Parameters:
        file - the file to decompress
        properties - Pack200 properties to use
        Throws:
        java.io.IOException - if reading fails
      • Pack200CompressorInputStream

        public Pack200CompressorInputStream​(java.io.File file,
                                            Pack200Strategy mode)
                                     throws java.io.IOException
        Decompresses the given file using the given strategy to cache the results.
        Parameters:
        file - the file to decompress
        mode - the strategy to use
        Throws:
        java.io.IOException - if reading fails
      • Pack200CompressorInputStream

        public Pack200CompressorInputStream​(java.io.File file,
                                            Pack200Strategy mode,
                                            java.util.Map<java.lang.String,​java.lang.String> properties)
                                     throws java.io.IOException
        Decompresses the given file using the given strategy to cache the results and the given properties.
        Parameters:
        file - the file to decompress
        mode - the strategy to use
        properties - Pack200 properties to use
        Throws:
        java.io.IOException - if reading fails
      • Pack200CompressorInputStream

        public Pack200CompressorInputStream​(java.io.InputStream inputStream)
                                     throws java.io.IOException
        Decompresses the given stream, caching the decompressed data in memory.

        When reading from a file the File-arg constructor may provide better performance.

        Parameters:
        inputStream - the InputStream from which this object should be created
        Throws:
        java.io.IOException - if reading fails
      • Pack200CompressorInputStream

        private Pack200CompressorInputStream​(java.io.InputStream inputStream,
                                             java.io.File file,
                                             Pack200Strategy mode,
                                             java.util.Map<java.lang.String,​java.lang.String> properties)
                                      throws java.io.IOException
        Throws:
        java.io.IOException
      • Pack200CompressorInputStream

        public Pack200CompressorInputStream​(java.io.InputStream inputStream,
                                            java.util.Map<java.lang.String,​java.lang.String> properties)
                                     throws java.io.IOException
        Decompresses the given stream, caching the decompressed data in memory and using the given properties.

        When reading from a file the File-arg constructor may provide better performance.

        Parameters:
        inputStream - the InputStream from which this object should be created
        properties - Pack200 properties to use
        Throws:
        java.io.IOException - if reading fails
      • Pack200CompressorInputStream

        public Pack200CompressorInputStream​(java.io.InputStream inputStream,
                                            Pack200Strategy mode)
                                     throws java.io.IOException
        Decompresses the given stream using the given strategy to cache the results.

        When reading from a file the File-arg constructor may provide better performance.

        Parameters:
        inputStream - the InputStream from which this object should be created
        mode - the strategy to use
        Throws:
        java.io.IOException - if reading fails
      • Pack200CompressorInputStream

        public Pack200CompressorInputStream​(java.io.InputStream inputStream,
                                            Pack200Strategy mode,
                                            java.util.Map<java.lang.String,​java.lang.String> properties)
                                     throws java.io.IOException
        Decompresses the given stream using the given strategy to cache the results and the given properties.

        When reading from a file the File-arg constructor may provide better performance.

        Parameters:
        inputStream - the InputStream from which this object should be created
        mode - the strategy to use
        properties - Pack200 properties to use
        Throws:
        java.io.IOException - if reading fails
    • Method Detail

      • matches

        public static boolean matches​(byte[] signature,
                                      int length)
        Checks if the signature matches what is expected for a pack200 file (0xCAFED00D).
        Parameters:
        signature - the bytes to check
        length - the number of bytes to check
        Returns:
        true, if this stream is a pack200 compressed stream, false otherwise
      • available

        public int available()
                      throws java.io.IOException
        Overrides:
        available in class java.io.InputStream
        Throws:
        java.io.IOException
      • close

        public void close()
                   throws java.io.IOException
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Overrides:
        close in class java.io.InputStream
        Throws:
        java.io.IOException
      • getInputStream

        private java.io.InputStream getInputStream()
                                            throws java.io.IOException
        Throws:
        java.io.IOException
      • mark

        public void mark​(int limit)
        Overrides:
        mark in class java.io.InputStream
      • markSupported

        public boolean markSupported()
        Overrides:
        markSupported in class java.io.InputStream
      • read

        public int read()
                 throws java.io.IOException
        Specified by:
        read in class java.io.InputStream
        Throws:
        java.io.IOException
      • read

        public int read​(byte[] b)
                 throws java.io.IOException
        Overrides:
        read in class java.io.InputStream
        Throws:
        java.io.IOException
      • read

        public int read​(byte[] b,
                        int off,
                        int count)
                 throws java.io.IOException
        Overrides:
        read in class java.io.InputStream
        Throws:
        java.io.IOException
      • reset

        public void reset()
                   throws java.io.IOException
        Overrides:
        reset in class java.io.InputStream
        Throws:
        java.io.IOException
      • skip

        public long skip​(long count)
                  throws java.io.IOException
        Overrides:
        skip in class java.io.InputStream
        Throws:
        java.io.IOException