2014-02-21 4 views
0

Я пытаюсь создать tar-файл из JAVA с помощью библиотеки JTar. Я пытаюсь упаковать два файла в один файл tar. Однако второй файл не попадает в созданный tar.Rather он отображается как содержимое первого файла.Создание файла TAR с использованием библиотеки JTar

Мой код выглядит следующим образом:

// 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(); 

Когда я открыть содержимое файл обработан с помощью команды "кошки" это выглядит следующим образом:

tarSample/File1.txt100644 0 0 1ustarkumarang 0 0 tarSample/File2.txt100644 0 0 7 12301634511 13276 0ustarkumarang 0 0

Если мое понимание верно, tarEntry добавляется в файл tar. Однако содержимое файлов не записывается.

Любое тело знает об исправлении?

Спасибо.

+2

, что делает 'деготь -tvf C: \\ tarFile' показать вам? – DaveH

+0

Он просто показывает детали файла1. Когда я извлекаю tar и открываю File1, у него есть имя файла File2 как его содержимое. – Kumaran

ответ

0

Просто измените его

FileOutputStream dest = new FileOutputStream("C:\\tarFile.tar"); 
Смежные вопросы