Java压缩/解压文件的实现代码
程序员文章站
2024-03-02 09:32:16
用java压缩/解压文件:
import java.io.*;
import java.awt.*;
import java.awt.even...
用java压缩/解压文件:
import java.io.*; import java.awt.*; import java.awt.event.*; import java.util.*; import java.util.zip.*; import javax.swing.*; //从压缩包中提取文件 public class zipextractdemo extends jframe{ jfilechooser filechooser; //文件选择器 jtextfield jtftarget; //待解压文件路径 jbutton jbselected; //选择文件按钮 jlist files; //信息显示列表框 jbutton jbextract; //解压按钮 zipfile zfile; public zipextractdemo(){ super("从压缩包中提取文件"); //调用父类构造函数 filechooser=new jfilechooser(); //实例化组件 jtftarget=new jtextfield(13); jbselected=new jbutton("选择"); jbextract=new jbutton("解压"); files=new jlist(); jpanel panel=new jpanel(); //实例化面板 panel.add(new jlabel("目标文件")); panel.add(jtftarget); //增加组件到面板上 panel.add(jbselected); panel.add(jbextract); jscrollpane jsp=new jscrollpane(files); jsp.setborder(borderfactory.createemptyborder(10,10,10,10)); //设置边界 container container=getcontentpane(); //得以容器 container.add(panel,borderlayout.north); //增加组件到容器上 container.add(jsp,borderlayout.center); jbselected.addactionlistener(new actionlistener(){ //文件选择按钮事件处理 public void actionperformed(actionevent event) { if (filechooser.showopendialog(zipextractdemo.this)==jfilechooser.approve_option){ //弹出文件选择器,并判断是否点击了打开按钮 string filename=filechooser.getselectedfile().getabsolutepath(); //得到选择文件的绝对路径 jtftarget.settext(filename); //设置目标文件名 showfiles(); //显示压缩包内容 } } }); jbextract.addactionlistener(new actionlistener(){ //解村文件按钮事件处理 public void actionperformed(actionevent event) { extractfile(files.getselectedvalue().tostring()); //解压指定文件 } }); setsize(350,250); //设置窗口尺寸 setvisible(true); //设置窗口可视 setdefaultcloseoperation(jframe.exit_on_close); //关闭窗口时退出程序 } public void showfiles(){ try{ zfile=new zipfile(jtftarget.gettext()); //得到压缩文件实例 zipentry entry; vector vec=new vector(); //文件枚举 enumeration enu=zfile.entries(); //得到压缩条目的枚举对象 while (enu.hasmoreelements()){ //依次枚举条目 entry=(zipentry) enu.nextelement(); //得到压缩条目 vec.add(entry.getname()); //增加文件到vector内 } files.setlistdata(vec); //设置文件列表框数据 files.getselectedvalues(); } catch (exception ex){ ex.printstacktrace(); //输出错误信息 } } public void extractfile(string name){ //解压文件 try{ zipentry entry=zfile.getentry(name); entry.getcomment(); entry.getcompressedsize(); entry.getcrc(); entry.isdirectory(); entry.getsize(); entry.getmethod(); inputstream in=zfile.getinputstream(entry); //得到文件输入流 file file=new file(name); //实例化文件对象 fileoutputstream out=new fileoutputstream(file); //得到文件输出流 byte[] buffer=new byte[1024]; //缓冲区大小 int length; while((length = in.read(buffer)) != -1) { //循环读取数据 out.write(buffer, 0, length); //写数据到输出流 } joptionpane.showmessagedialog(zipextractdemo.this,"解压成功,解压到:"+file.getabsolutepath()); in.close(); //关闭输入流 out.close(); //关闭输出流 } catch (exception ex){} } public static void main(string[] args){ new zipextractdemo(); } }
总结
以上所述是小编给大家介绍的java压缩/解压文件的实现代码,希望对大家有所帮助