gpt4 book ai didi

java - apache commons 压缩的 Tar 问题

转载 作者:行者123 更新时间:2023-11-29 08:18:49 25 4
gpt4 key购买 nike

我在尝试使用压缩库压缩某些文件时遇到了困难。

我的代码如下,取自 commons.compress wiki 示例:

    private static File createTarFile(String[] filePaths, String saveAs) throws Exception{

File tarFile = new File(saveAs);
OutputStream out = new FileOutputStream(tarFile);

TarArchiveOutputStream aos = (TarArchiveOutputStream) new ArchiveStreamFactory().createArchiveOutputStream("tar", out);

for(String filePath : filePaths){
File file = new File(filePath);
TarArchiveEntry entry = new TarArchiveEntry(file);
entry.setSize(file.length());
aos.putArchiveEntry(entry);
IOUtils.copy(new FileInputStream(file), aos);
aos.closeArchiveEntry();
}
aos.finish();
out.close();


return tarFile;
}

过程中没有错误,但是当我尝试解压文件时,我得到以下信息:

XXXX:XXXX /home/XXXX$ tar -xf typeCommandes.tar
tar: Unexpected EOF in archive
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now

此外,存档的大小比原始文件稍小,这对于 tar 来说是不正常的,所以 DO 是有问题的......

-rw-r--r--  1 XXXX nobody 12902400 Jan 14 17:11 typeCommandes.tar
-rw-r--r-- 1 XXXX nobody 12901888 Jan 14 17:16 typeCommandes.csv

谁能告诉我我做错了什么?谢谢

最佳答案

您没有关闭TarArchiveOutputStream。在 aos.finish()

之后添加 aos.close()

关于java - apache commons 压缩的 Tar 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2065806/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com