Package org.biojava.nbio.core.util
Class UncompressInputStream
- java.lang.Object
-
- java.io.InputStream
-
- java.io.FilterInputStream
-
- org.biojava.nbio.core.util.UncompressInputStream
-
- All Implemented Interfaces:
Closeable
,AutoCloseable
public class UncompressInputStream extends FilterInputStream
This class decompresses an input stream containing data compressed with the unix "compress" utility (LZC, a LZW variant). This code is based heavily on the unlzw.c code in gzip-1.2.4 (written by Peter Jannesen) and the original compress code. This version has been modified from the original 0.3-3 version by the Unidata Program Center (support@xxxxxxxxxxxxxxxx) to make the constructor public and to fix a couple of bugs. Also: - markSupported() returns false - add uncompress() static method- Version:
- 0.3-3 06/05/2001, 0.3-5 2008/01/19, 1.0 2018/01/08
- Author:
- Ronald Tschalar, Unidata Program Center, Richard Holland - making LZW_MAGIC package-visible., Fred Hansen (zweibieren@yahoo.com) Fixed available() and the EOF condition for mainloop. Also added some comments., Fred Hansen (zweibieren@yahoo.com) added uncompress(InputStream,OutputStream) and called it from main(String[]) and uncompress(String, FileOutputStream) normalize indentation rewrite skip method amend logging code in uncompress(String, FileOutputStream)
-
-
Field Summary
-
Fields inherited from class java.io.FilterInputStream
in
-
-
Constructor Summary
Constructors Constructor Description UncompressInputStream(InputStream is)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description int
available()
boolean
markSupported()
This stream does not support mark/reset on the stream.int
read()
int
read(byte[] buf, int off, int len)
long
skip(long num)
static long
uncompress(InputStream in, OutputStream out)
Read an input stream and uncompress it to an output stream.static long
uncompress(String fileInName, FileOutputStream out)
Read a named file and uncompress it.-
Methods inherited from class java.io.FilterInputStream
close, mark, read, reset
-
Methods inherited from class java.io.InputStream
nullInputStream, readAllBytes, readNBytes, readNBytes, transferTo
-
-
-
-
Constructor Detail
-
UncompressInputStream
public UncompressInputStream(InputStream is) throws IOException
- Parameters:
is
- the input stream to decompress- Throws:
IOException
- if the header is malformed
-
-
Method Detail
-
read
public int read() throws IOException
- Overrides:
read
in classFilterInputStream
- Throws:
IOException
-
read
public int read(byte[] buf, int off, int len) throws IOException
- Overrides:
read
in classFilterInputStream
- Throws:
IOException
-
skip
public long skip(long num) throws IOException
- Overrides:
skip
in classFilterInputStream
- Throws:
IOException
-
available
public int available() throws IOException
- Overrides:
available
in classFilterInputStream
- Throws:
IOException
-
markSupported
public boolean markSupported()
This stream does not support mark/reset on the stream.- Overrides:
markSupported
in classFilterInputStream
- Returns:
- false
-
uncompress
public static long uncompress(String fileInName, FileOutputStream out) throws IOException
Read a named file and uncompress it.- Parameters:
fileInName
- Name of compressed file.out
- A destination for the result. It is closed after data is sent.- Returns:
- number of bytes sent to the output stream,
- Throws:
IOException
- for any error
-
uncompress
public static long uncompress(InputStream in, OutputStream out) throws IOException
Read an input stream and uncompress it to an output stream.- Parameters:
in
- the incoming InputStream. It is NOT closed.out
- the destination OutputStream. It is NOT closed.- Returns:
- number of bytes sent to the output stream
- Throws:
IOException
- for any error
-
-