It is not a tutorial. But its to share a source code of a Java application which for compressing files into ZIP archive. The line by line explanations are given in the source code.
Download Netbeans Project File: http://downloads.ziddu.com/download/23930727/FileZip.zip.html
Download Netbeans Project File: http://downloads.ziddu.com/download/23930727/FileZip.zip.html
/*
* []
* []
* []
* [] ----> WwW.TerminalCoders.BlogSpot.DE <----
* []
* []
* []
*/
package filezip;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class FileZip extends JFrame {
JButton btn = new JButton("OPEN");
JTextArea area = new JTextArea();
JPanel pnl = new JPanel(new GridLayout(1,1));
JScrollPane pane = new JScrollPane();
FileZip()
{
super("FILE ZIP - AJITH KP"); // Title
setLayout(new BorderLayout()); // Set Layout to BorderLayout
area.setEditable(false); // Textarea field cannot edit
area.add(pane); // Adding scroll bar to Textarea
area.setForeground(Color.black); // Textarea foreground is Black
area.setBackground(Color.yellow); // Textarea backgrond is Yellow
area.setFont(new Font("Times New Roman", Font.BOLD, 15)); // Textarea font is Time New Roman, Bold & size is 15
pnl.add(btn); // Add button to panel
add(pnl, BorderLayout.NORTH); // Add panel to Frame
add(area, BorderLayout.CENTER); // Add Textarea to Frame
btn.addActionListener(new ActionListener() // Button click capture
{
@Override
public void actionPerformed(ActionEvent e) {
area.setText("");
showDlg();
}
});
}
void showDlg()
{
JFileChooser c = new JFileChooser(); // File chooser
c.setFileSelectionMode(JFileChooser.FILES_ONLY); // Can select files only
c.setMultiSelectionEnabled(true); // Multi selection is enabled
int res = c.showOpenDialog(c); // Get result of file dialog
if(res==JFileChooser.CANCEL_OPTION) // If you click cancel or closed the dialog
{
return;
}
File[] fls = c.getSelectedFiles(); // Else
if(fls[0].toString().equals("")) // If you didn't select any file
{
return;
}
for(int i=0;i<fls.length;i++) // Else
{
area.setText(area.getText()+"Added:\t\t"+fls[i].getName()+"\n");
}
try {
zipFile(fls); // Calling function zipFile
} catch (FileNotFoundException ex) {
Logger.getLogger(FileZip.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(FileZip.class.getName()).log(Level.SEVERE, null, ex);
}
}
void zipFile(File[] file) throws FileNotFoundException, IOException
{
int num = file.length; // Number of files you selected
FileInputStream in[] = new FileInputStream[num]; // FileInputStream array
File f2 = new File(file[0].getParent()); // Get the name of parent directory
for(int i=0;i<num;i++)
{
in[i] = new FileInputStream(file[i]);
}
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(file[0].getParent()+"\\"+f2.getName()+".zip")); // Setting zip archive name
for(int i=0; i<num; i++)
{
out.putNextEntry(new ZipEntry(file[i].getName())); // Adding files to zip archive
}
for(int i=0; i<num; i++) // Compressing each files you selected
{
byte[] b = new byte[1024];
int count;
while ((count = in[i].read(b)) > 0) {
System.out.println();
out.write(b, 0, count);
}
}
for(int i=0; i<num;i++)
in[i].close();
out.close();
area.setText(area.getText()+"\n\nFiles Zipped Successfully: "+f2.getName()+".zip");
}
public static void main(String[] args) throws FileNotFoundException, IOException {
FileZip z = new FileZip();
z.setSize(700, 500);
z.setVisible(true);
z.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
