Java examples for File Path IO:GZIP
GZIP Decompresses one gzipped file into another file.
//package com.java2s; import java.io.*; import java.util.zip.GZIPInputStream; public class Main { public static final int BUFF_SIZE = 2048; /**// w w w . java 2 s.c o m * Decompresses one gzipped file into another file. * * @param toDecompress * @param destinationFile * @throws IOException if there was a problem. */ public static void decompressFile(final File toDecompress, final File destinationFile) throws IOException { if (destinationFile.exists()) { throw new IOException("Refusing to overwrite an existing file."); } InputStream istream = null; OutputStream ostream = null; try { ostream = new BufferedOutputStream(new FileOutputStream( destinationFile), BUFF_SIZE); istream = getCompressedFileAsStream(toDecompress); transferStream(istream, ostream); } finally { if (istream != null) { istream.close(); } if (ostream != null) { ostream.close(); } } } /** * gets an InputStream from a file that is gzip compressed. * * @param file * @return * @throws IOException */ public static InputStream getCompressedFileAsStream(final File file) throws IOException { return new GZIPInputStream(new BufferedInputStream( new FileInputStream(file))); } /** * Transfers an InputStream to an OutputStream it is up to the job of the caller to close the streams. * * @param istream * @param ostream * @throws IOException */ protected static void transferStream(final InputStream istream, final OutputStream ostream) throws IOException { final byte[] inBuf = new byte[BUFF_SIZE]; int readBytes = istream.read(inBuf); while (readBytes >= 0) { ostream.write(inBuf, 0, readBytes); readBytes = istream.read(inBuf); } } }