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 (Decompressing a file):
final InputStream is = new FileInputStream(input); CompressorInputStream in = new CompressorStreamFactory().createCompressorInputStream(CompressorStreamFactory.BZIP2, is); IOUtils.copy(in, new FileOutputStream(output)); in.close();
Modifier and Type | Field and Description |
---|---|
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 and Description |
---|
CompressorStreamFactory() |
Modifier and Type | Method and Description |
---|---|
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.
|
void |
setDecompressConcatenated(boolean decompressConcatenated)
Whether to decompress the full input or only the first stream
in formats supporting multiple concatenated input streams.
|
public static final String BZIP2
public static final String GZIP
public static final String PACK200
public static final String XZ
public void setDecompressConcatenated(boolean decompressConcatenated)
This setting applies to the gzip, bzip2 and xz formats only.
decompressConcatenated
- if true, decompress until the end of the
input; if false, stop after the first
stream and leave the input position to point
to the next byte after the streampublic CompressorInputStream createCompressorInputStream(InputStream in) throws CompressorException
in
- the input streamCompressorException
- if the compressor name is not knownIllegalArgumentException
- if the stream is null or does not support markpublic CompressorInputStream createCompressorInputStream(String name, InputStream in) throws CompressorException
name
- of the compressor, i.e. "gz", "bzip2", "xz", or "pack200"in
- the input streamCompressorException
- if the compressor name is not knownIllegalArgumentException
- if the name or input stream is nullpublic CompressorOutputStream createCompressorOutputStream(String name, OutputStream out) throws CompressorException
name
- the compressor name, i.e. "gz", "bzip2", "xz", or "pack200"out
- the output streamCompressorException
- if the archiver name is not knownIllegalArgumentException
- if the archiver name or stream is nullCopyright © 2015 The Apache Software Foundation. All Rights Reserved.