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压缩/解压文件的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
java代码实现解压文件_Java压缩/解压文件的实现代码相关推荐
- node.js文件的压缩解压
node.js文件的压缩解压 流式读写文件 知识预知 例子 压缩解压文件 知识预知 压缩文件 解压文件 流式读写文件 第一步先要弄清楚为什么需要压缩和解压文件,这是因为文件太大了,我们需要将文件进行压 ...
- linux带密码解压密码,linux 下文件加密压缩和解压的方法
方法一:用tar命令 对文件加密压缩和解压 压缩: [html] view plain copy tar -zcf - filename |openssl des3 -salt -k password ...
- Python 基础 之 zipfile 文件夹压缩/解压方法的简单整理
Python 基础 之 zipfile 文件夹压缩/解压方法的简单整理 目录
- 完美java.util.zip使用,实现zip压缩和解压
之前找了很多demo代码在压缩中遇到各种问题,中文乱码.文本内容丢失等. 以下教程是本人亲自测试过,通过java.util.zip包实现java代码的文件zip压缩和解压: 1.压缩: 1)压缩一个文 ...
- c#程序操作文件进行压缩和解压
前记录:首先本人项目设计需要将文件进行压缩和解压的操作,语言为c#,从网上找的很多都是半成品,不足而论,并且坑多.一度以为是我的电脑出现了问题,差点把自己的电脑给用win10 重装系统.后来想了一下, ...
- Linux下文件的压缩和解压
文件的压缩和解压 Gzip格式的: tar -czvf 要存的名字.tar.gz 要打包的东西或目录 bzip2格式的: tar -cjvf 要存的名字.tar.bz ...
- linux压缩100天以上的文件,如何提高几十甚至上百G文件的压缩和解压效率
如何提高几十甚至上百G文件的压缩和解压效率 (2012-06-05 02:21:35) 标签: 的 如何 杂谈 如何提高几十甚至上百G文件的压缩和解压效率需求: 有几十.上百G的文件需要压缩.解压.前 ...
- linux 下文件加密压缩和解压的方法
方法一:用tar命令 对文件加密压缩和解压 压缩: tar -zcf - filename |openssl des3 -salt -k password | dd of=filename.des3 ...
- 【Linux】文件的压缩和解压
欢迎来到博主 Apeiron 的博客,祝您旅程愉快 ! 时止则止,时行则行.动静不失其时,其道光明. 目录 1.压缩格式 2.压缩软件 3.tar 命令简介 4.tar 命令压缩 5.总结 1.压 ...
最新文章
- 9path 导致的一场冤假错案
- python 音乐下载演示源代码
- Flash中如何使用滤镜
- get request uni 参数_接口测试实战| GET/POST 请求区别详解
- [Ljava.lang.String和java.lang.String区别
- 你担心大家会滥用的全局变量,大家(包括你自己)一定会滥用
- 【opencv学习】【图像金字塔】
- Bootstrap下拉菜单标题
- Bootstrap CSS 编码规范之带前缀的属性
- 前 k 条最短路径算法
- 190522每日一句
- EndNote文献输出引用格式自定义修改与编辑界面解读
- 二叉树模型matlab实现,利用Matlab实现二叉树的树形显示
- 看两宋风云,搞清了四个之前对两宋历史认识错误的地方
- 此应用 DCloud APPID 非当前账号所有,请联系应用所有者(即此Appid的创建者)设置你的账号为协作者(在https://dev.dcloud.net.cn操作),或重新生成 APPID 后
- Python画美国盾牌
- 卡牌游戏战斗系统的设计和实现二
- 40核至强服务器性能如何,20核心40线程怎么样?双路E5-2680 V2评测
- 南方暴雨破纪录,路上的车慢慢开,太急要往河里栽
- LinuxStudyNote(29)-Linux常用命令(6)-压缩解压命令汇总gzip、gunzip、tar、zip、unzip、bzip2、bunzip2
热门文章
- MATLAB字符串和ASCII码的转换
- mysql远程访问时间长无反应_远程MySQL访问需要很长时间
- linux系统安装宝塔面板
- linux安装pip
- 教你如何创建一款属于自己的VSCode主题
- java 批量验证_正则表达式批量验证函数
- uniapp框架之如何修改接口传参的参数
- 从字符串 const str = ‘qwbewrbbeqqbbbweebbbbqee‘;中能得到结果 [“b“, “bb“, “bbb“, “bbbb“] 以下错误语句是?
- 微软MS11-050漏洞的利用
- 我的前端工具集(五)提示工具之模态窗提示