2012-10-23 50 views
1

我使用CBZip2OutputStream來創建一個壓縮的bzip文件。有用。如何用CBZip2OutputStream壓縮多個文件

但我想在一個bzip文件中壓縮幾個文件,但不使用tar歸檔。

如果我有file1,file2,file3,我希望它們在files.bz2中不在archive files.tar.bz2中。

有可能嗎?

回答

0

我明白,所以我使用包帶TarOutputStream類這樣的:

public void makingTarArchive(File[] inFiles, String inPathName) throws IOException{ 

    StringBuilder stringBuilder = new StringBuilder(inPathName); 
    stringBuilder.append(".tar"); 

    String pathName = stringBuilder.toString() ; 

    // Output file stream 
    FileOutputStream dest = new FileOutputStream(pathName); 

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

    for(File f : inFiles){ 

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

    dest.close(); 

    File file = new File(pathName) ; 

    createBZipFile(file); 

    boolean success = file.delete(); 

    if (!success) { 
     System.out.println("can't delete the .tar file"); 
    } 
} 
相關問題