源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

java使用gzip实现文件解压缩示例

  • 时间:2020-07-22 21:23 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:java使用gzip实现文件解压缩示例
[u]复制代码[/u] 代码如下:
package com.cjonline.foundation.cpe.action; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.util.zip.GZIPInputStream; import java.util.zip.GZIPOutputStream; public abstract class GZipUtils {      public static final int BUFFER = 1024;      public static final String EXT = ".gz";      /**      * 数据压缩      *       * @param data      * @return      * @throws Exception      */      public static byte[] compress(byte[] data) throws Exception {          ByteArrayInputStream bais = new ByteArrayInputStream(data);          ByteArrayOutputStream baos = new ByteArrayOutputStream();          // 压缩          compress(bais, baos);          byte[] output = baos.toByteArray();          baos.flush();          baos.close();          bais.close();          return output;      }      /**      * 文件压缩      *       * @param file      * @throws Exception      */      public static void compress(File file) throws Exception {          compress(file, true);      }      /**      * 文件压缩      *       * @param file      * @param delete      *            是否删除原始文件      * @throws Exception      */      public static void compress(File file, boolean delete) throws Exception {          FileInputStream fis = new FileInputStream(file);          FileOutputStream fos = new FileOutputStream(file.getPath() + EXT);          compress(fis, fos);          fis.close();          fos.flush();          fos.close();          if (delete) {              file.delete();          }      }      /**      * 数据压缩      *       * @param is      * @param os      * @throws Exception      */      public static void compress(InputStream is, OutputStream os)              throws Exception {          GZIPOutputStream gos = new GZIPOutputStream(os);          int count;          byte data[] = new byte[BUFFER];          while ((count = is.read(data, 0, BUFFER)) != -1) {              gos.write(data, 0, count);          }          gos.finish();          gos.flush();          gos.close();      }      /**      * 文件压缩      *       * @param path      * @throws Exception      */      public static void compress(String path) throws Exception {          compress(path, true);      }      /**      * 文件压缩      *       * @param path      * @param delete      *            是否删除原始文件      * @throws Exception      */      public static void compress(String path, boolean delete) throws Exception {          File file = new File(path);          compress(file, delete);      }      /**      * 数据解压缩      *       * @param data      * @return      * @throws Exception      */      public static byte[] decompress(byte[] data) throws Exception {          ByteArrayInputStream bais = new ByteArrayInputStream(data);          ByteArrayOutputStream baos = new ByteArrayOutputStream();          // 解压缩          decompress(bais, baos);          data = baos.toByteArray();          baos.flush();          baos.close();          bais.close();          return data;      }      /**      * 文件解压缩      *       * @param file      * @throws Exception      */      public static void decompress(File file) throws Exception {          decompress(file, true);      }      /**      * 文件解压缩      *       * @param file      * @param delete      *            是否删除原始文件      * @throws Exception      */      public static void decompress(File file, boolean delete) throws Exception {          FileInputStream fis = new FileInputStream(file);          FileOutputStream fos = new FileOutputStream(file.getPath().replace(EXT,                  ""));          decompress(fis, fos);          fis.close();          fos.flush();          fos.close();          if (delete) {              file.delete();          }      }      /**      * 数据解压缩      *       * @param is      * @param os      * @throws Exception      */      public static void decompress(InputStream is, OutputStream os)              throws Exception {          GZIPInputStream gis = new GZIPInputStream(is);          int count;          byte data[] = new byte[BUFFER];          while ((count = gis.read(data, 0, BUFFER)) != -1) {              os.write(data, 0, count);          }          gis.close();      }      /**      * 文件解压缩      *       * @param path      * @throws Exception      */      public static void decompress(String path) throws Exception {          decompress(path, true);      }      /**      * 文件解压缩      *       * @param path      * @param delete      *            是否删除原始文件      * @throws Exception      */      public static void decompress(String path, boolean delete) throws Exception {          File file = new File(path);          decompress(file, delete);      }  }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部