Java 使用 GZIP 進行壓縮和解壓縮

gbd8 9年前發布 | 868 次閱讀 Java

 
import java.util.zip.GZIPOutputStream;
import java.io.FileOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

/**



*/

public class CompressFileGZIP {

/**
 * Perform file compression.
 * @param inFileName Name of the file to be compressed
 */
private static void doCompressFile(String inFileName) {

    try {

        System.out.println("Creating the GZIP output stream.");
        String outFileName = inFileName + ".gz";
        GZIPOutputStream out = null;
        try {
            out = new GZIPOutputStream(new FileOutputStream(outFileName));
        } catch(FileNotFoundException e) {
            System.err.println("Could not create file: " + outFileName);
            System.exit(1);
        }


        System.out.println("Opening the input file.");
        FileInputStream in = null;
        try {
            in = new FileInputStream(inFileName);
        } catch (FileNotFoundException e) {
            System.err.println("File not found. " + inFileName);
            System.exit(1);
        }

        System.out.println("Transfering bytes from input file to GZIP Format.");
        byte[] buf = new byte[1024];
        int len;
        while((len = in.read(buf)) > 0) {
            out.write(buf, 0, len);
        }
        in.close();

        System.out.println("Completing the GZIP file");
        out.finish();
        out.close();

    } catch (IOException e) {
        e.printStackTrace();
        System.exit(1);
    }

}

/**
 * Sole entry point to the class and application.
 * @param args Array of String arguments.
 */
public static void main(String[] args) {

    if (args.length != 1) {
        System.err.println("Usage: java CompressFileGZIP filename");
    } else {
        doCompressFile(args[0]);
    }


}

} </pre>

 本文由用戶 gbd8 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!