Example usage for org.apache.commons.compress.compressors.gzip GzipCompressorInputStream read

List of usage examples for org.apache.commons.compress.compressors.gzip GzipCompressorInputStream read

Introduction

In this page you can find the example usage for org.apache.commons.compress.compressors.gzip GzipCompressorInputStream read.

Prototype

public int read(byte[] b, int from, int length) throws IOException 

Source Link

Usage

From source file:com.dubture.symfony.core.util.UncompressUtils.java

/**
 * Uncompress a gzip archive and returns the file where it has been
 * extracted.//from  w ww .ja  v a2s  .  com
 *
 * @param archiveFile The archive file to uncompress
 * @param outputDirectory The output directory where to put the uncompressed archive
 *
 * @return The output file where the archive has been uncompressed
 *
 * @throws IOException When a problem occurs with either the input or output stream
 */
public static File uncompressGzipArchive(File archiveFile, File outputDirectory) throws IOException {
    FileInputStream fileInputStream = new FileInputStream(archiveFile);
    BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream);
    GzipCompressorInputStream gzipInputStream = new GzipCompressorInputStream(bufferedInputStream);

    String tarArchiveFilename = GzipUtils.getUncompressedFilename(archiveFile.getName());
    File outputFile = new File(outputDirectory, tarArchiveFilename);
    FileOutputStream outputStream = new FileOutputStream(outputFile);

    int byteReadCount = 0;
    final byte[] data = new byte[BUFFER_SIZE];

    try {
        while ((byteReadCount = gzipInputStream.read(data, 0, BUFFER_SIZE)) != -1) {
            outputStream.write(data, 0, byteReadCount);
        }
    } finally {
        outputStream.close();
        gzipInputStream.close();
    }

    return outputFile;
}