org.apache.commons.compress.compressors
Class CompressorStreamFactory

java.lang.Object
  extended by org.apache.commons.compress.compressors.CompressorStreamFactory

public class CompressorStreamFactory
extends Object

Factory to create Compressor[In|Out]putStreams from names. To add other implementations you should extend CompressorStreamFactory and override the appropriate methods (and call their implementation from super of course).

Example (Compressing a file):
 final OutputStream out = new FileOutputStream(output); 
 CompressorOutputStream cos = 
      new CompressorStreamFactory().createCompressorOutputStream(CompressorStreamFactory.BZIP2, out);
 IOUtils.copy(new FileInputStream(input), cos);
 cos.close();
 
Example (Compressing a file):
 final InputStream is = new FileInputStream(input); 
 CompressorInputStream in = 
      new CompressorStreamFactory().createCompressorInputStream(CompressorStreamFactory.BZIP2, is);
 IOUtils.copy(in, new FileOutputStream(output));
 in.close();
 

This class is immutable

Field Summary
static String BZIP2
          Constant used to identify the BZIP2 compression algorithm.
static String GZIP
          Constant used to identify the GZIP compression algorithm.
static String PACK200
          Constant used to identify the PACK200 compression algorithm.
static String XZ
          Constant used to identify the XZ compression method.
 
Constructor Summary
CompressorStreamFactory()
           
 
Method Summary
 CompressorInputStream createCompressorInputStream(InputStream in)
          Create an compressor input stream from an input stream, autodetecting the compressor type from the first few bytes of the stream.
 CompressorInputStream createCompressorInputStream(String name, InputStream in)
          Create a compressor input stream from a compressor name and an input stream.
 CompressorOutputStream createCompressorOutputStream(String name, OutputStream out)
          Create an compressor output stream from an compressor name and an input stream.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

BZIP2

public static final String BZIP2
Constant used to identify the BZIP2 compression algorithm.

Since:
Commons Compress 1.1
See Also:
Constant Field Values

GZIP

public static final String GZIP
Constant used to identify the GZIP compression algorithm.

Since:
Commons Compress 1.1
See Also:
Constant Field Values

PACK200

public static final String PACK200
Constant used to identify the PACK200 compression algorithm.

Since:
Commons Compress 1.3
See Also:
Constant Field Values

XZ

public static final String XZ
Constant used to identify the XZ compression method.

Since:
Commons Compress 1.4
See Also:
Constant Field Values
Constructor Detail

CompressorStreamFactory

public CompressorStreamFactory()
Method Detail

createCompressorInputStream

public CompressorInputStream createCompressorInputStream(InputStream in)
                                                  throws CompressorException
Create an compressor input stream from an input stream, autodetecting the compressor type from the first few bytes of the stream. The InputStream must support marks, like BufferedInputStream.

Parameters:
in - the input stream
Returns:
the compressor input stream
Throws:
CompressorException - if the compressor name is not known
IllegalArgumentException - if the stream is null or does not support mark
Since:
Commons Compress 1.1

createCompressorInputStream

public CompressorInputStream createCompressorInputStream(String name,
                                                         InputStream in)
                                                  throws CompressorException
Create a compressor input stream from a compressor name and an input stream.

Parameters:
name - of the compressor, i.e. "gz", "bzip2", "xz", or "pack200"
in - the input stream
Returns:
compressor input stream
Throws:
CompressorException - if the compressor name is not known
IllegalArgumentException - if the name or input stream is null

createCompressorOutputStream

public CompressorOutputStream createCompressorOutputStream(String name,
                                                           OutputStream out)
                                                    throws CompressorException
Create an compressor output stream from an compressor name and an input stream.

Parameters:
name - the compressor name, i.e. "gz", "bzip2", "xz", or "pack200"
out - the output stream
Returns:
the compressor output stream
Throws:
CompressorException - if the archiver name is not known
IllegalArgumentException - if the archiver name or stream is null


Copyright © 2012 The Apache Software Foundation. All Rights Reserved.