2014-02-21 16 views
0

我一直在試圖創建Java中使用聯合戰術空中攻擊library.I tar文件TAR文件我想兩個文件打包成一個焦油file.However第二個文件是不能爲創建上市tar.Rather它顯示爲第一個文件的內容。創建使用聯合戰術空中攻擊庫

我的代碼如下所示:

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

當我用 「貓」 的命令看起來打開tar文件的內容,如:

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

如果我的理解是正確的tarEntry是越來越增加。然而這些文件的內容沒有得到書面的tar文件。

任何機構都知道修復?

謝謝。

+2

什麼的'tar -tvf C:\\ tarFile'告訴你? – DaveH

+0

它只是顯示File1的細節。當我提取tar並打開File1時,它將File2的名稱作爲其內容。 – Kumaran

回答

0

只是將其更改爲

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