Java压缩/解压文件的实现代码
作者:左岸流华 发布时间:2023-08-26 04:02:56
标签: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压缩/解压文件的实现代码,希望对大家有所帮助,
来源:http://blog.csdn.net/qq_39045774/article/details/78052183


猜你喜欢
- 分部类(Partial Class)在C#2.0引入,分部方法(Partial Method)在C#3.0引入,这两个语法特性都具有相同的特
- 前言AndroidStudio升级到3.0之后,gradle版本也随之升级到了3.0.0版本。当gradle插件升级到3.0.0及以上后,我
- 1.线程与进程进程是代码在数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,线程则是一个实体,一个进程中至少有一个线程,是CPU
- 面试官:sychronized关键字有哪些特性?应聘者:可以用来修饰方法;可以用来修饰代码块;可以用来修饰静态方法;可以保证线程安全;支持锁
- 之前写过3篇手势密码的demo,不过没有集成到真实的企业项目中,这几天正好领到一个手势密码项目,昨天刚好弄完,今天抽空整理下,目前还没有完善
- 在之前的博客中已经为大家介绍了,如何在win环境下配置DNK程序,本篇我将带大家实现一个简单的Hello jni程序,让大家真正感受一下ND
- 上一篇讲完注解,这篇咱们科普一 * 解的其中一种用途——注解处理器(APT),文章会手把手的帮助大家学
- 1.使用List集合方式用list保存activity实例,然后逐一干掉import java.util.LinkedList;import
- 在Android游戏开发中,我们可能经常要像PC操作一样在屏幕上双击。对于屏幕双击操作,Android 1.6版本以前并没有提供完善的手势识
- Java 8中引入了CompletableFuture类,它是一种方便的异步编程工具,可以处理各种异步操作,如网络请求、文件IO和数据库操作
- 具体配置方法如下: 1:在服务器上安装office的Excel软件. 2:在"开始"->"运行"
- 本文实例为大家分享了Android实现聊天界面的具体代码,供大家参考,具体内容如下文件目录在app下的build.gradle中添加依赖库(
- 前言定时任务在系统中并不少见,主要目的是用于需要定时处理数据或者执行某个操作的情况下,如定时关闭订单,或者定时备份。而常见的定时任务分为2种
- springboot 2.0 mybatis mapper-locations扫描多个路径mapper-locations扫描多个路径,中间
- 本文实例为大家分享了Android文本视图TextView实现聊天室的具体代码,供大家参考,具体内容如下Math.random()生成随机数
- 本文实例为大家分享了Android拼图小游戏的具体代码,供大家参考,具体内容如下1、效果图:运行时:结束时:2、PuzzleLayoutVi
- 本文实例总结了C#中string.format用法。分享给大家供大家参考。具体分析如下:String.Format 方法的几种定义:Stri
- 本文实例讲述了C#通过DataSet读写xml文件的方法。分享给大家供大家参考。具体实现方法如下:DataSet ds = new Data
- 使用Aspose.Cells创建和读取Excel文件,供大家参考,具体内容如下1. 创建ExcelAspose.Cells.License
- 本文实例讲述了C++判断pe文件的方法。分享给大家供大家参考。具体实现方法如下:#include <afxdlgs.h>是为了使