zoukankan      html  css  js  c++  java
  • Java将文本文件压缩为tar.gz

        /**
         * @功能描述 压缩tar.gz 文件
         * @param sources 源文件集合
         * @param outPath 目标文件名称 无后缀的 例子 G:ackuplogstash-2020.04.22
         * @return 返回压缩结果
         * @throws Exception
         */
        public static void packet(String[] sources, String outPath) throws Exception {
            // gz文件 名称  TAR GZ 就是 .tar.gz
            String gzPath = String.format("%s%s%s",outPath, TAR, GZ);
            ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
            TarArchiveOutputStream tarArchiveOutputStream = null;
            GZIPOutputStream gzipOutputStream = null;
            try {
                tarArchiveOutputStream = new TarArchiveOutputStream(byteArrayOutputStream);
                // 将所有文件打包成 tar文件
                try {
                    for (String source : sources) {
                        File file = new File(source);
                        tarArchiveOutputStream.putArchiveEntry(new TarArchiveEntry(file, file.getName()));
                        IOUtils.copy(new FileInputStream(file), tarArchiveOutputStream);
                        tarArchiveOutputStream.closeArchiveEntry();
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                } finally {
                    if(tarArchiveOutputStream != null) {
                        tarArchiveOutputStream.flush();
                        tarArchiveOutputStream.close();
                    }
                }
                gzipOutputStream = new GZIPOutputStream(new FileOutputStream(gzPath));
                gzipOutputStream.write(byteArrayOutputStream.toByteArray());
            } finally {
                if(byteArrayOutputStream != null) {
                    byteArrayOutputStream.close();
                }
                if(gzipOutputStream != null) {
                    gzipOutputStream.flush();
                    gzipOutputStream.close();
                }
            }
        }
  • 相关阅读:
    java基础-代理模式
    java基础-反射(细节)
    java基础-反射
    设计模式之单例
    23种设计模式汇总整理
    dialog--not attached to window manager
    java之设计模式
    android-sdk和api版本
    studio之mac快捷键
    控件之ReleLayout属性
  • 原文地址:https://www.cnblogs.com/kongkongFabian/p/12762250.html
Copyright © 2011-2022 走看看