用Apache Commons Compress 產生tar.gz

来源:互联网 发布:淘宝网购物女童鞋 编辑:程序博客网 时间:2024/06/06 05:39

POM:

<dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.4</version></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-compress</artifactId><version>1.5</version></dependency>

代碼

import java.io.File;import java.io.FileOutputStream;import org.apache.commons.compress.archivers.tar.TarArchiveEntry;import org.apache.commons.compress.archivers.tar.TarArchiveOutputStream;import org.apache.commons.compress.compressors.CompressorOutputStream;import org.apache.commons.compress.compressors.CompressorStreamFactory;import org.apache.commons.io.FileUtils;import org.junit.Test;

@Testpublic void testtgz() throws Exception {String outputFilePath = "/Users/xxx/Documents/test.tar.gz";File outputFile = new File(outputFilePath);FileOutputStream fileOutputStream = FileUtils.openOutputStream(outputFile);CompressorOutputStream gzippedOut = new CompressorStreamFactory().createCompressorOutputStream(CompressorStreamFactory.GZIP,fileOutputStream);String inputFilePath = "/Users/xxx/aaa.pdf";File inputFile = new File(inputFilePath);TarArchiveEntry tae = new TarArchiveEntry(inputFile,inputFile.getName());TarArchiveOutputStream taos = new TarArchiveOutputStream(gzippedOut);taos.putArchiveEntry(tae);taos.write(FileUtils.readFileToByteArray(inputFile));taos.closeArchiveEntry();taos.close();gzippedOut.close();}