Java Tips

editor: David Buttler
Return to Index


Extracting TAR files

Extracting TAR files

Contributed by: Susan Foster

I couldn't find any examples on the web - so here is how you can extract filename.tar.gz file

import org.apache.tools.tar.*;
import java.util.zip.GZIPInputStream;
import java.io.*;
 
private void untarFiles(String tarFileName, File dest)
     throws IOException{
	//assuming the file you pass in is not a dir
    dest.mkdir();
	//create tar input stream from a .tar.gz file
    TarInputStream tin = 
        new TarInputStream(
            new GZIPInputStream(
                new FileInputStream(
                    new File(tarFileName))));
                      
    //get the first entry in the archive                          
    TarEntry tarEntry = tin.getNextEntry();     
     while (tarEntry != null){  
        //create a file with the same name as the tarEntry 
        File destPath = new File(
                dest.toString() + File.separatorChar + tarEntry.getName());
        if (tarEntry.isDirectory()){
            destPath.mkdir();                           
        }
        else {
            FileOutputStream fout = new FileOutputStream(destPath); 
            tin.copyEntryContents(fout);   
            fout.close();                      
        }
        tarEntry = tin.getNextEntry(); 
    }    
    tin.close();
}

Monitor this page for changes