本文通过实例代码给大家分享了java压缩/解压文件的方法,需要的朋友参考下吧
用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中如何实现压缩解压文件的示例的详细内容。
