Java将文本文件压缩为tar.gz
/** * @功能描述 压缩tar.gz 文件 * @param sources 源文件集合 * @param outPath 目标文件名称 无后缀的 例子 G:\backup\logstash-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(); } } }