```java
package com.niit.compress;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
import org.apache.hadoop.io.compress.CompressionCodec;
import org.apache.hadoop.io.compress.CompressionCodecFactory;
import org.apache.hadoop.io.compress.CompressionOutputStream;
import org.apache.hadoop.util.ReflectionUtils;
import java.io.*;
public class CompressedDemo {
public static void compress() throws IOException, ClassNotFoundException {
File src = new File( "d:/access.log.txt");
InputStream inputStream = new FileInputStream(src);
String codeName = "org.apache.hadoop.io.compress.DefaultCodec";
Class<?> forName = Class.forName(codeName);
CompressionCodec compressionCodec = (CompressionCodec) ReflectionUtils.newInstance(forName, new Configuration());
File dest =new File(src.getName()+ compressionCodec.getDefaultExtension());
OutputStream outputStream = new FileOutputStream(dest);
CompressionOutputStream codecOutputStream = compressionCodec.createOutputStream(outputStream);
IOUtils.copyBytes(inputStream,codecOutputStream,4096,false);
codecOutputStream.close();
outputStream.close();
inputStream.close();
}
public static void decompress() throws Exception {
File src = new File("access.log.txt.deflate");
CompressionCodecFactory factory = new CompressionCodecFactory(new Configuration());
CompressionCodec compressionCodec = factory.getCodec(new Path(src.getName()));
File fileOut = new File(src.getName()+".log");
InputStream in = compressionCodec.createInputStream( new FileInputStream(src) );
OutputStream out = new FileOutputStream(fileOut);
IOUtils.copyBytes(in, out, 4096, false);
in.close();
out.close();
}
public static void main(String[]args) throws Exception {
decompress();
}
}