我一直在尝试使用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文件中。但是文件的内容没有被写入。
任何人都知道修复?
感谢。
答案 0 :(得分:0)
只需将其更改为
即可FileOutputStream dest = new FileOutputStream("C:\\tarFile.tar");