java解压代码_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压缩/解压文件的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值