通过 Java 制作 tar 文件

2022-09-01 18:14:44

我想使用Java将文件夹压缩为tar文件(以编程方式)。我认为必须有一个开源或图书馆来做到这一点。但是,我找不到这样的方法。

或者,我是否可以制作一个zip文件并将其扩展名称重命名为.tar?

任何人都可以建议一个图书馆来做这件事吗?谢谢!


答案 1

我会看看Apache Commons Compress

在此示例页面的中间有一个示例,它展示了一个 tar 示例。

TarArchiveEntry entry = new TarArchiveEntry(name);
entry.setSize(size);
tarOutput.putArchiveEntry(entry);
tarOutput.write(contentOfEntry);
tarOutput.closeArchiveEntry();

答案 2

您可以使用 jtar - Java Tar 库

摘自他们的网站:

JTar 是一个简单的 Java Tar 库,它提供了一种使用 IO 流创建和读取 tar 文件的简单方法。该API非常易于使用,类似于java.util.zip包。

一个例子,也来自他们的网站:

   // Output file stream
   FileOutputStream dest = new FileOutputStream( "c:/test/test.tar" );

   // Create a TarOutputStream
   TarOutputStream out = new TarOutputStream( new BufferedOutputStream( dest ) );

   // Files to tar
   File[] filesToTar=new File[2];
   filesToTar[0]=new File("c:/test/myfile1.txt");
   filesToTar[1]=new File("c:/test/myfile2.txt");

   for(File f:filesToTar){
      out.putNextEntry(new TarEntry(f, f.getName()));
      BufferedInputStream origin = new BufferedInputStream(new FileInputStream( f ));

      int count;
      byte data[] = new byte[2048];
      while((count = origin.read(data)) != -1) {
         out.write(data, 0, count);
      }

      out.flush();
      origin.close();
   }

   out.close();

推荐