欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

Java 使用 GZIP 进行压缩和解压缩,javagzip,CompressFile

来源: javaer 分享于  点击 41159 次 点评:107

Java 使用 GZIP 进行压缩和解压缩,javagzip,CompressFile


CompressFileGZIP.java

import java.util.zip.GZIPOutputStream;import java.io.FileOutputStream;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;/** * ----------------------------------------------------------------------------- * Used to provide an example of compressing a file using the GZIP Format. * * @version 1.0 * @author  Jeffrey M. Hunter  (jhunter@idevelopment.info) * @author  http://www.idevelopment.info * ----------------------------------------------------------------------------- */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]);        }    }}

UncompressFileGZIP.java

import java.util.zip.GZIPInputStream;import java.io.FileOutputStream;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;/** * ----------------------------------------------------------------------------- * Used to provide an example of uncompressing a file in the GZIP Format. * * @version 1.0 * @author  Jeffrey M. Hunter  (jhunter@idevelopment.info) * @author  http://www.idevelopment.info * ----------------------------------------------------------------------------- */public class UncompressFileGZIP {    /**     * Uncompress the incoming file.     * @param inFileName Name of the file to be uncompressed     */    private static void doUncompressFile(String inFileName) {        try {            if (!getExtension(inFileName).equalsIgnoreCase("gz")) {                System.err.println("File name must have extension of \".gz\"");                System.exit(1);            }            System.out.println("Opening the compressed file.");            GZIPInputStream in = null;            try {                in = new GZIPInputStream(new FileInputStream(inFileName));            } catch(FileNotFoundException e) {                System.err.println("File not found. " + inFileName);                System.exit(1);            }            System.out.println("Open the output file.");            String outFileName = getFileName(inFileName);            FileOutputStream out = null;            try {                out = new FileOutputStream(outFileName);            } catch (FileNotFoundException e) {                System.err.println("Could not write to file. " + outFileName);                System.exit(1);            }            System.out.println("Transfering bytes from compressed file to the output file.");            byte[] buf = new byte[1024];            int len;            while((len = in.read(buf)) > 0) {                out.write(buf, 0, len);            }            System.out.println("Closing the file and stream");            in.close();            out.close();        } catch (IOException e) {            e.printStackTrace();            System.exit(1);        }    }    /**     * Used to extract and return the extension of a given file.     * @param f Incoming file to get the extension of     * @return <code>String</code> representing the extension of the incoming     *         file.     */     public static String getExtension(String f) {        String ext = "";        int i = f.lastIndexOf('.');        if (i > 0 &&  i < f.length() - 1) {            ext = f.substring(i+1);        }               return ext;    }    /**     * Used to extract the filename without its extension.     * @param f Incoming file to get the filename     * @return <code>String</code> representing the filename without its     *         extension.     */     public static String getFileName(String f) {        String fname = "";        int i = f.lastIndexOf('.');        if (i > 0 &&  i < f.length() - 1) {            fname = f.substring(0,i);        }               return fname;    }    /**     * 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 UncompressFileGZIP gzipfile");        } else {            doUncompressFile(args[0]);        }    }}
相关栏目:

用户点评