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)

相关推荐

  • java中GZIP压缩解压类使用实例

    java中GZIP压缩解压类使用实例 当我们客户端与服务端进行数据传输时需要走流量,为了节省流量我们常常需要写一个压缩类对数据进行压缩. 实例代码: import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.util.zip.GZIPInputStream; import java.util.zip.GZIPOutputStr

  • java使用gzip实现文件解压缩示例

    复制代码 代码如下: package com.cjonline.foundation.cpe.action; import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;import java.

  • Java 文件解压缩实现代码

    Java实现压缩文件的解压缩操作,缺点是压缩文件内不能含有文件名为中文的的文件,否则会出现如下错误: 复制代码 代码如下: Exception in thread "main" java.lang.IllegalArgumentException: MALFORMED at java.util.zip.ZipCoder.toString(Unknown Source) at java.util.zip.ZipInputStream.readLOC(Unknown Source) at

  • java 解压与压缩文件夹的实例详解

     java 解压与压缩文件夹的实例详解 注意:JDK7支持设置编码设置编码格式 zipFile,zipInputStream,zipOutputStream都增加了编码格式,如果是jdk1.6需要其他的包辅助 下面为自带jdk压缩文件夹代码: public void dozip(String srcfile, String zipfile) throws IOException { String temp = ""; File src = new File(srcfile); File

  • Java解压缩zip - 解压缩多个文件或文件夹实例

    Java解压缩zip - 多个文件(包括文件夹),具体如下: 对多个文件和文件夹进行压缩,对复杂的文件目录进行解压. 压缩方法使用的是可变参数,可以压缩1到多个文件..可以写数组的方式或者一个个写到参数列表里面... ZipFiles(zip,"abc",new File("d:/English"),new File("d:/发放数据.xls")); 测试文件目录结构: 测试的压缩内容:English文件夹和同级的两个excel文件 File[]

  • 实例展示使用Java压缩和解压缩7z文件的方法

    压缩为7z文件 首先网络上对7z的压缩内容很少. 尤其是java调用进行压缩的是更少了. 一下是自己完成的一个压缩. 本人进行了测试是成功的. 将压缩的流写如磁盘一个压缩文件中. 然后使用7z的压缩软件进行打开解压. 7-zip的开源项目7-zip-JBinding项目地址(sourceforge) 不多说,调用7z源码进行压缩的方法如下. public byte[] lzmaZip(String xml) throws IOException{ BufferedInputStream inSt

  • java调用7zip解压压缩包的实例

    前言 最近的项目中需要用到解压缩包的功能,客户给出的压缩包的格式主要是rar和zip,因此就打算使用java调用7zip的命令行进行解压文件,本文主要记录一下实现的过程以及其中遇到的问题. 7zip命令行 7z <command> [<switches>...] <archive_name> [<file_names>...][<@listfiles...>] 7z的commands中包含添加文件到压缩包.从压缩包中删除文件以及提取文件等等多个命

  • Java压缩解压zip技术_动力节点Java学院整理

    Java解压缩zip - 多个文件(包括文件夹),对多个文件和文件夹进行压缩,对复杂的文件目录进行解压.压缩方法使用的是可变参数,可以压缩1到多个文件..可以写数组的方式或者一个个写到参数列表里面... ZipFiles(zip,"abc",new File("d:/English"),new File("d:/发放数据.xls")); 测试文件目录结构: 测试的压缩内容:English文件夹和同级的两个excel文件 File[] files

  • 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 jtfTarg

  • C#使用SharpZipLib压缩解压文件

    一.介绍 SharpZipLib是一个完全由C#编写的ZIP,GZIP,Tar和BZIP2 Library,可以方便的支持这几种格式的压缩和解压缩. https://github.com/icsharpcode/SharpZipLib 下载解压SharpZipLib ,将 ICSharpCode.SharpZipLib .dll 添加至项目引用中. 二.操作指南 1.1  创建zip文件,并添加文件: using (ZipFile zip = ZipFile.Create(@"E:\test.z

  • Java自动解压文件实例代码

    复制代码 代码如下: import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.Enumeration; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; public cl

  • Python实现多级目录压缩与解压文件的方法

    本文实例讲述了Python实现多级目录压缩与解压文件的方法.分享给大家供大家参考,具体如下: 咱向来就是拿来主意,也发个东西供同行"拿来"使用吧 咱信奉的就是少量的代码完成大量的工作,虽然代码不多,但还是要用大脑的.发出来供大家参考 功能: 支持中文路径,支持多级目录 支持跨平台,在linux和window下都可直接使用 压缩的多态性 压缩包不带级父文件夹目录压缩 压缩包带父级文件夹目录 不指定目标文件与路径压缩 指定压缩包名称不指定路径压缩 还是看代码吧 #coding:utf-8

  • Java实现把文件压缩成zip文件的示例代码

    实现代码 ackage org.fh.util; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; /** * 说明:java压缩成zip * 作者:FH Admin * from:fhadmin.cn */ public class Fi

  • 详解Java无需解压直接读取Zip文件和文件内容

    整理文档,搜刮出一个Java无需解压直接读取Zip文件和文件内容的代码,稍微整理精简一下做下分享. package test; import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.InputStream; import java.io.InputStreamReader; import java.util.zip.ZipE

  • 详解C#压缩、解压文件夹/文件(带密码)

    前言 今天梳理一下项目中用到的压缩.解压文件夹或文件的方法,发现因为需求不同,已经用了好几个不同组件.今天就好好整理记录下,别下次遇到需求又重头开始了. DotNetZip DotNetZip是一个开源的免费类库,主要提供了快速操作zip文件的工具集,VB.C#任何.Net语言都可以通过它创建.解压缩zip文件.我使用该类库最主要的目的还是因为它可以创建带密码保护的压缩文件. 只有设置了zip.Password = "password"之后,被压缩的文件才会有密码保护 /// <

  • ASP.NET 文件压缩解压类(C#)

    本文实例讲述了asp.net C#实现解压缩文件的方法,需要引用一个ICSharpCode.SharpZipLib.dll,供大家参考,具体如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using ICSharpCode.SharpZipLib.Zip; using System.IO; using ICSharpCode.SharpZipLib.Checksum

随机推荐