| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
ccmccmcc
10年前发布

gzip Java 使用 GZIP 进行压缩和解压缩

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]);          }        }    }