Zipp





0
Date Submitted Mon. Jul. 18th, 2011 5:57 PM
Revision 1 of 1
Beginner hucasato
Tags Java | util.zip | zip
Comments 0 comments
Small snippet of java.util.zip to create compressed archives

/**
 * Simple Zip file compression class.
 * @author Candres
 * Date: Jun 30, 2010
 */


import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;

public class ZipArchive {
       
        private ZipOutputStream archStream; 

       
        /*
         *  Creates a new Zip archive, if the file already exist, it will replace the old one. 
         */

        public ZipArchive(String path) throws FileNotFoundException     {
               
                //Opens a 'path' file, it might create a new file.
                archStream = new ZipOutputStream( new FileOutputStream(path) )
        }
       
       
        /*
         *  Add a file entry to current archive
         */

        public void addfile(String path) throws IOException {
               
            int offset = 0;
            int numRead = 0;
                long length;
                File inputFile;
                InputStream currStream;
                byte[] bytes = new byte[100]
               
               
                                inputFile  = new File(path);       
                                length     = inputFile.length();
                                currStream = new FileInputStream(inputFile);
                               
                               
                               //add new input
                               archStream.putNextEntry(new ZipEntry(inputFile.getName()));
               
                               // read and write at once.
                    while( (numRead = currStream.read(bytes, 0, 100)   ) >= 0) {
                                        offset += numRead;
                                        archStream.write(bytes, 0, numRead);
                    }
                   
                    // Ensure all the bytes have been read in
                    if (offset < length)
                        throw new IOException("Could not completely read file " + inputFile.getName());
                    
                    //close read/write streams.
                    currStream.close();
                    archStream.closeEntry();
        }
       
        /*
         * Finalizes current archive.
         */

        public void close() throws IOException  {
                archStream.close();
        }
}
 

Andreti R

Comments

There are currently no comments for this snippet.

Voting

Votes Up


Newbie Silver

Votes Down


Beginner hucasato