This class implements an output stream filter for uncompressing data stored in the "deflate" compression format.
Constructors
Java
Output :
Java
- InflaterOutputStream(OutputStream out) : Creates a new output stream with a default decompressor and buffer size.
- InflaterOutputStream(OutputStream out, Inflater infl) : Creates a new output stream with the specified decompressor and a default buffer size.
- InflaterOutputStream(OutputStream out, Inflater infl, int bufLen) : Creates a new output stream with the specified decompressor and buffer size.
- void close() : Writes any remaining uncompressed data to the output stream and closes the underlying output stream.
Syntax : public void close() throws IOException Overrides: close in class FilterOutputStream Throws: IOException - void finish() : Finishes writing uncompressed data to the output stream without closing the underlying stream.
Syntax :public void finish() throws IOException Throws: IOException - void flush() : Flushes this output stream, forcing any pending buffered output bytes to be written.
Syntax :public void flush() throws IOException Overrides: flush in class FilterOutputStream Throws: IOException - void write(byte[] b, int off, int len) : Writes an array of bytes to the uncompressed output stream.
Syntax :public void write(byte[] b, int off, int len) throws IOException Overrides: write in class FilterOutputStream Parameters: b - buffer containing compressed data to decompress and write to the output stream off - starting offset of the compressed data within b len - number of bytes to decompress from b Throws: IndexOutOfBoundsException IOException NullPointerException ZipException - void write(int b) : Writes a byte to the uncompressed output stream.
Syntax :public void write(int b) throws IOException Parameters: b - a single byte of compressed data to decompress and write to the output stream Throws: IOException ZipException
//Java program to illustrate InflaterInputStream class
import java.io.*;
import java.util.Arrays;
import java.util.zip.DeflaterInputStream;
import java.util.zip.InflaterOutputStream;
class InflaterOutputStreamDemo
{
public static void main(String[] args) throws IOException
{
byte b[] = {1, 2, 3, 4, 5, 6};
ByteArrayInputStream bin = new ByteArrayInputStream(b);
DeflaterInputStream din = new DeflaterInputStream(bin);
byte c[] = new byte[10];
din.read(c);
din.close();
ByteArrayOutputStream bos = new ByteArrayOutputStream();
InflaterOutputStream ios = new InflaterOutputStream(bos);
//illustrating write(byte b[],int off,int len)
ios.write(c);
//flushing
ios.flush();
//Finishes writing uncompressed data to the output stream
// without closing the underlying stream.
ios.finish();
System.out.println(Arrays.toString(bos.toByteArray()));
bos.close();
//illustrating close()
ios.close();
}
}
[1, 2, 3, 4, 5, 6]Program 2:
//Java program to illustrate InflaterInputStream class
import java.io.*;
import java.util.Arrays;
import java.util.zip.DeflaterInputStream;
import java.util.zip.InflaterOutputStream;
class InflaterOutputStreamDemo
{
public static void main(String[] args) throws IOException
{
byte b[] = {1, 2, 3, 4, 5, 6};
ByteArrayInputStream bin = new ByteArrayInputStream(b);
DeflaterInputStream din = new DeflaterInputStream(bin);
FileOutputStream fos=new FileOutputStream("file.txt");
byte c[] = new byte[10];
din.read(c);
fos.write(c);
din.close();
fos.close();
//reading the compressed data
FileInputStream fis = new FileInputStream("file.txt");
ByteArrayOutputStream bos1=new ByteArrayOutputStream();
InflaterOutputStream ios = new InflaterOutputStream(bos1);
int ch;
//illustrating write() method
while ( (ch=fis.read() ) != -1)
{
ios.write(ch);
}
System.out.print(Arrays.toString(bos1.toByteArray()));
}
}
Output :
[1, 2, 3, 4, 5, 6]Next article: Java.util.zip.InflaterInputStream class in Java