21 March 2008

program ekstraksi arsip zip/jar dengan java


Warning: unfinished project
Sekali lagi, cuma buat penyemangat pribadi. Program ini dibuat dengan menggunakan class untuk melakukan ekstraksi file terkompresi yang ada di java, dengan dukungan pada file zip dan jar, class di package java.util. Source code dibuat beberapa tahun lalu saat banyak nganggur baru mengenal event di awt. Karena proyek yang terlalu lama melebihi deadline pribadi, akhirnya ditinggalkan saat belum tercapai target.
Fungsi utama yang sudah berjalan adalah, memilih dan membuka arsip terkompresi zip/jar, melihat isi, mengekstrak isinya.
Sekali lagi ini belum selesai, sehingga bisa ditambahkan misalkan fungsi untuk membuat arsip baru. Mungkin buat inspirasi buat yang bingung judul Tugas Akhir, siapa tahu bisa diajukan setelah itu disempurnakan seperti halnya program winzip atau winrar. *just kidding*razz. Once again, ganbatte kudasai!
victoire
Source code:

import javax.swing.event.*;
import java.util.zip.*;
import java.io.*;
import javax.swing.*;
import java.util.*;
public class zipjar extends JFrame{
JList list;
ZipFile zfile;
JScrollPane scroll;
boolean sudah=true;
public zipjar()throws IOException{
JFileChooser fc=new JFileChooser();
fc.showOpenDialog(this);
String file=fc.getSelectedFile().getAbsolutePath();
zfile = new ZipFile(file);
Vector v=new Vector();
for(java.util.Enumeration en=zfile.entries();en.hasMoreElements();){
v.add(en.nextElement());
}

getContentPane().add(scroll=new JScrollPane(list=new JList(v)));
list.addListSelectionListener(new ListSelectionListener(){
public void valueChanged(ListSelectionEvent e){sudah=!sudah;if(!sudah){
ZipEntry ze=zfile.getEntry((list.getSelectedValue()+"").trim());
ze.setMethod(ZipEntry.DEFLATED);
String filename=(list.getSelectedValue()+"").trim();
String outputString="";
byte[] b = new byte[100];
try{
BufferedReader br=new BufferedReader(new InputStreamReader(zfile.getInputStream(ze)));
String hasil="";
for(String h="";true;){
hasil+=h;
h=br.readLine();
if(h==null)break;
if(hasil.trim().length()>0)hasil+="\n";
}
outputString=new StringBuffer(hasil).deleteCharAt(hasil.length()-1).toString();
//System.out.print(outputString);
filename=new StringBuffer(filename).substring(new StringBuffer(filename).lastIndexOf("/")+1).toString();
File file=new File(filename);file.deleteOnExit();
(new PrintWriter(new BufferedWriter(new FileWriter(filename)),true)).println(outputString);
Runtime.getRuntime().exec("explorer "+filename);
}catch(Exception ex){System.err.println(ex.toString());}
}
}});
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400,300);
setVisible(true);
}
public static void main(String[]a)throws IOException{
new zipjar();
}
}

1 °C:

qu4ck said...

walah kok yo kedise'an seehhh... kate post neng Blog ku :) yo wes ra sido wes....
ku pernah Om ngomong2 TA tentang ini, Boleh kok untuk TA. :)

Post a Comment