Retrieving a file from a jar file

JAR file in Java is a compressed format and is used for packaging of the deliverables. At times, you may want to manipulate this file.
Below example indicates a scenario for the same.

import java.util.jar.*;
import java.io.*;

public class RetrievingJarEntry
{
   public static void main(String args[])
   {
      RetrievingJarEntry retrievingJarEntry = new RetrievingJarEntry();
      retrievingJarEntry.proceed();
   }
   
   private void proceed()
   {
      String sourceJarFile = “files/contacts.jar”;
      String sourceFile = “2.txt”;
      String destFile = “files/new2.txt”;
      try{
         
         JarFile jarFile = new JarFile(sourceJarFile);
         JarEntry jarEntry = jarFile.getJarEntry(sourceFile);
         System.out.println(“Found entry: ” + jarEntry);
         if ( jarEntry != null)
         {
            //Getting the jarEntry into the inputStream
            InputStream inputStream = jarFile.getInputStream(jarEntry); 
            //Creating a output stream to a new file of our choice
            FileOutputStream fileOutputStream = new java.io.FileOutputStream(destFile);
            System.out.println(“Attempting to create file: ” + destFile);
            while (inputStream.available()  0) 
            {  
               fileOutputStream.write(inputStream.read());
            }
            System.out.println(“Created file: ” + destFile);
            fileOutputStream.close();
            inputStream.close();
         }
      }catch(IOException ioe)
      {
         System.out.println(“Exception: ” + ioe);
      }
   }
}

/*

Expected output:

[[email protected]]# java RetrievingJarEntry
Found entry: 2.txt
Attempting to create file: files/new2.txt
Created file: files/new2.txt

*/

//Please note: You have to create a folder with name files and a jar file contacts.jar which has files 1.txt, 2.txt and 3.txt

Share the Post:
Share on facebook
Share on twitter
Share on linkedin

Related Posts