用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压缩/解压文件的实现代码相关推荐

  1. node.js文件的压缩解压

    node.js文件的压缩解压 流式读写文件 知识预知 例子 压缩解压文件 知识预知 压缩文件 解压文件 流式读写文件 第一步先要弄清楚为什么需要压缩和解压文件,这是因为文件太大了,我们需要将文件进行压 ...

  2. linux带密码解压密码,linux 下文件加密压缩和解压的方法

    方法一:用tar命令 对文件加密压缩和解压 压缩: [html] view plain copy tar -zcf - filename |openssl des3 -salt -k password ...

  3. Python 基础 之 zipfile 文件夹压缩/解压方法的简单整理

    Python 基础 之 zipfile 文件夹压缩/解压方法的简单整理 目录

  4. 完美java.util.zip使用,实现zip压缩和解压

    之前找了很多demo代码在压缩中遇到各种问题,中文乱码.文本内容丢失等. 以下教程是本人亲自测试过,通过java.util.zip包实现java代码的文件zip压缩和解压: 1.压缩: 1)压缩一个文 ...

  5. c#程序操作文件进行压缩和解压

    前记录:首先本人项目设计需要将文件进行压缩和解压的操作,语言为c#,从网上找的很多都是半成品,不足而论,并且坑多.一度以为是我的电脑出现了问题,差点把自己的电脑给用win10 重装系统.后来想了一下, ...

  6. Linux下文件的压缩和解压

    文件的压缩和解压 Gzip格式的:    tar   -czvf    要存的名字.tar.gz     要打包的东西或目录 bzip2格式的:    tar   -cjvf 要存的名字.tar.bz ...

  7. linux压缩100天以上的文件,如何提高几十甚至上百G文件的压缩和解压效率

    如何提高几十甚至上百G文件的压缩和解压效率 (2012-06-05 02:21:35) 标签: 的 如何 杂谈 如何提高几十甚至上百G文件的压缩和解压效率需求: 有几十.上百G的文件需要压缩.解压.前 ...

  8. linux 下文件加密压缩和解压的方法

    方法一:用tar命令 对文件加密压缩和解压 压缩: tar -zcf - filename |openssl des3 -salt -k password | dd of=filename.des3 ...

  9. 【Linux】文件的压缩和解压

    欢迎来到博主 Apeiron 的博客,祝您旅程愉快 ! 时止则止,时行则行.动静不失其时,其道光明. 目录 1.压缩格式 2.压缩软件 3.tar  命令简介 4.tar  命令压缩 5.总结 1.压 ...

最新文章

  1. 9path 导致的一场冤假错案
  2. python 音乐下载演示源代码
  3. Flash中如何使用滤镜
  4. get request uni 参数_接口测试实战| GET/POST 请求区别详解
  5. [Ljava.lang.String和java.lang.String区别
  6. 你担心大家会滥用的全局变量,大家(包括你自己)一定会滥用
  7. 【opencv学习】【图像金字塔】
  8. Bootstrap下拉菜单标题
  9. Bootstrap CSS 编码规范之带前缀的属性
  10. 前 k 条最短路径算法
  11. 190522每日一句
  12. EndNote文献输出引用格式自定义修改与编辑界面解读
  13. 二叉树模型matlab实现,利用Matlab实现二叉树的树形显示
  14. 看两宋风云,搞清了四个之前对两宋历史认识错误的地方
  15. 此应用 DCloud APPID 非当前账号所有,请联系应用所有者(即此Appid的创建者)设置你的账号为协作者(在https://dev.dcloud.net.cn操作),或重新生成 APPID 后
  16. Python画美国盾牌
  17. 卡牌游戏战斗系统的设计和实现二
  18. 40核至强服务器性能如何,20核心40线程怎么样?双路E5-2680 V2评测
  19. 南方暴雨破纪录,路上的车慢慢开,太急要往河里栽
  20. LinuxStudyNote(29)-Linux常用命令(6)-压缩解压命令汇总gzip、gunzip、tar、zip、unzip、bzip2、bunzip2

热门文章

  1. MATLAB字符串和ASCII码的转换
  2. mysql远程访问时间长无反应_远程MySQL访问需要很长时间
  3. linux系统安装宝塔面板
  4. linux安装pip
  5. 教你如何创建一款属于自己的VSCode主题
  6. java 批量验证_正则表达式批量验证函数
  7. uniapp框架之如何修改接口传参的参数
  8. 从字符串 const str = ‘qwbewrbbeqqbbbweebbbbqee‘;中能得到结果 [“b“, “bb“, “bbb“, “bbbb“] 以下错误语句是?
  9. 微软MS11-050漏洞的利用
  10. 我的前端工具集(五)提示工具之模态窗提示