使用JTar库创建TAR文件

时间:2014-02-21 13:20:11

标签: java compression zip tar apache-commons

我一直在尝试使用JTar库从JAVA创建tar文件。我正在尝试将两个文件打包到一个tar文件中。但是第二个文件没有在创建的tar中列出。它正在显示作为第一个文件的内容。

我的代码如下:

    // Output file stream
    FileOutputStream dest = new FileOutputStream("C:\\tarFile");

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

    // Files to tar
    File[] filesToTar = new File[2];
    filesToTar[0] = new File("C:\\tarSample\\File1.txt");
    filesToTar[1] = new File("C:\\tarSample\\File2.txt");

    for (File f : filesToTar)
    {
        TarEntry entry = new TarEntry(f);

        out.putNextEntry(entry);
        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();
    dest.close();

当我使用“cat”命令打开tarFile的内容时,它看起来像:

tarSample / File1.txt100644 0 0 10 12301634500 13305 0ustarkumarang 0 0 tarSample / File2.txt100644 0 0 7 12301634511 13276 0ustarkumarang 0 0

如果我的理解是正确的,tarEntry会被添加到tar文件中。但是文件的内容没有被写入。

任何人都知道修复?

感谢。

1 个答案:

答案 0 :(得分:0)

只需将其更改为

即可
FileOutputStream dest = new FileOutputStream("C:\\tarFile.tar");