精华内容
下载资源
问答
  • 传入一组文件,将文件列表打包为ZIP文件,传入ZIP文件文件压缩到一个指定文件夹,下面是这个实例的实现使用到了ANT的工具类,所以要引入ant.jar文件到工程中对于压缩建立一个工具类:package com.xidian.commmon...

    传入一组文件,将文件列表打包为ZIP文件,传入ZIP文件将文件解压缩到一个指定文件夹,下面是这个实例的实现

    使用到了ANT的工具类,所以要引入ant.jar文件到工程中

    对于压缩建立一个工具类:

    package com.xidian.commmon;

    import java.io.File;

    import java.io.FileInputStream;

    import java.io.FileOutputStream;

    import java.io.OutputStream;

    import java.util.zip.ZipOutputStream;

    import org.apache.tools.zip.ZipEntry;

    /**

    * ZIP操作工具类

    * @说明 注意引入ant.jar文件

    * @author cuisuqiang

    * @version 1.0

    * @since

    */

    public class Zip {

    /**

    * 压缩文件列表到某ZIP文件

    * @param zipFilename 要压缩到的ZIP文件

    * @param paths 文件列表,多参数

    * @throws Exception

    */

    public static void compress(String zipFilename, String... paths)

    throws Exception {

    compress(new FileOutputStream(zipFilename), paths);

    }

    /**

    * 压缩文件列表到输出流

    * @param os 要压缩到的流

    * @param paths 文件列表,多参数

    * @throws Exception

    */

    public static void compress(OutputStream os, String... paths)

    throws Exception {

    ZipOutputStream zos = new ZipOutputStream(os);

    for (String path : paths) {

    if (path.equals(""))

    continue;

    java.io.File file = new java.io.File(path);

    if (file.exists()) {

    if (file.isDirectory()) {

    zipDirectory(zos, file.getPath(), file.getName()

    + File.separator);

    } else {

    zipFile(zos, file.getPath(), "");

    }

    }

    }

    zos.close();

    }

    private static void zipDirectory(ZipOutputStream zos, String dirName,

    String basePath) throws Exception {

    File dir = new File(dirName);

    if (dir.exists()) {

    File files[] = dir.listFiles();

    if (files.length > 0) {

    for (File file : files) {

    if (file.isDirectory()) {

    zipDirectory(zos, file.getPath(), basePath

    + file.getName().substring(

    file.getName().lastIndexOf(

    File.separator) + 1)

    + File.separator);

    } else

    zipFile(zos, file.getPath(), basePath);

    }

    } else {

    ZipEntry ze = new ZipEntry(basePath);

    zos.putNextEntry(ze);

    }

    }

    }

    private static void zipFile(ZipOutputStream zos, String filename,

    String basePath) throws Exception {

    File file = new File(filename);

    if (file.exists()) {

    FileInputStream fis = new FileInputStream(filename);

    ZipEntry ze = new ZipEntry(basePath + file.getName());

    zos.putNextEntry(ze);

    byte[] buffer = new byte[8192];

    int count = 0;

    while ((count = fis.read(buffer)) > 0) {

    zos.write(buffer, 0, count);

    }

    fis.close();

    }

    }

    }

    String... paths 是传入的文件列表,输出流可以穿文件流也可以传文件路径名称

    压缩一组文件:

    package com.xidian.test;

    import java.io.FileOutputStream;

    import com.xidian.commmon.Zip;

    /**

    * 压缩文件

    * @说明

    * @author cuisuqiang

    * @version 1.0

    * @since

    */

    public class TestCompress {

    public static void main(String[] args) {

    // 要压缩的文件列表

    String path01 = "C:\\a";

    String path02 = "C:\\test.txt";

    try {

    FileOutputStream os = new FileOutputStream("C:\\a.zip"); // 输出的ZIP文件流

    Zip.compress(os, path01, path02);

    } catch (Exception e) {

    e.printStackTrace();

    }

    }

    }

    由于已经写了工具类,调用看起来非常清晰

    解压这个压缩包:

    package com.xidian.test;

    import java.io.File;

    import java.io.FileInputStream;

    import java.io.FileOutputStream;

    import java.util.ArrayList;

    import java.util.zip.ZipEntry;

    import java.util.zip.ZipInputStream;

    /**

    * 解压缩测试

    * @说明

    * @author cuisuqiang

    * @version 1.0

    * @since

    */

    public class EctractZip {

    @SuppressWarnings( { "unchecked", "static-access" })

    public static void main(String[] args) {

    EctractZip z = new EctractZip();

    ArrayList a = z.Ectract("C:\\a.zip", "C:\\tmp\\"); // 返回解压缩出来的文件列表

    for(String s : a){

    System.out.println(s);

    }

    }

    /**

    * 解压缩

    * @param sZipPathFile 要解压的文件

    * @param sDestPath 解压到某文件夹

    * @return

    */

    @SuppressWarnings("unchecked")

    public static ArrayList Ectract(String sZipPathFile, String sDestPath) {

    ArrayList allFileName = new ArrayList();

    try {

    // 先指定压缩档的位置和档名,建立FileInputStream对象

    FileInputStream fins = new FileInputStream(sZipPathFile);

    // 将fins传入ZipInputStream中

    ZipInputStream zins = new ZipInputStream(fins);

    ZipEntry ze = null;

    byte[] ch = new byte[256];

    while ((ze = zins.getNextEntry()) != null) {

    File zfile = new File(sDestPath + ze.getName());

    File fpath = new File(zfile.getParentFile().getPath());

    if (ze.isDirectory()) {

    if (!zfile.exists())

    zfile.mkdirs();

    zins.closeEntry();

    } else {

    if (!fpath.exists())

    fpath.mkdirs();

    FileOutputStream fouts = new FileOutputStream(zfile);

    int i;

    allFileName.add(zfile.getAbsolutePath());

    while ((i = zins.read(ch)) != -1)

    fouts.write(ch, 0, i);

    zins.closeEntry();

    fouts.close();

    }

    }

    fins.close();

    zins.close();

    } catch (Exception e) {

    System.err.println("Extract error:" + e.getMessage());

    }

    return allFileName;

    }

    }

    请您到ITEYE网站看原创,谢谢!

    解压其实非常简单,因为JDK 中有一个ZipInputStream对象,只需要使用他为我们服务即可!

    展开全文
  • 通过ZipInStream类将压缩文件解压到指定的文件夹中:源程序是:import java.io.*;import java.util.zip.*;public class Decompressing { // 创建文件public static void main(String[] temp) {ZipInputStream zin; /...

    通过ZipInStream类将压缩文件解压到指定的文件夹中:

    源程序是:

    import java.io.*;

    import java.util.zip.*;

    public class Decompressing { // 创建文件

    public static void main(String[] temp) {

    ZipInputStream zin; // 创建ZipInputStream对象

    try { // try语句捕获可能发生的异常

    zin = new ZipInputStream(new FileInputStream("F:/hello.zip"));

    // 实例化对象,指明要进行解压的文件

    ZipEntry entry = zin.getNextEntry(); // 获取下一个ZipEntry

    while (((entry = zin.getNextEntry()) != null)

    && !entry.isDirectory()) {

    // 如果entry不为空,并不在同一目录下

    File file = new File("F:\" + entry.getName()); // 获取文件目录

    System.out.println(file);

    if (!file.exists()) { // 如果该文件不存在

    file.mkdirs();// 创建文件所在文件夹

    file.createNewFile(); // 创建文件

    }

    zin.closeEntry(); // 关闭当前entry

    System.out.println(entry.getName() + "解压成功");

    }

    zin.close(); // 关闭流

    } catch (Exception e) {

    e.printStackTrace();

    }

    }

    取消

    评论

    展开全文
  • java压缩 GZIP进行简单压缩ZIP进行多文件保存package org.rui.io.compress;import java.io.BufferedOutputStream;import java.io.BufferedReader;import java.io.FileInputStream;import java.io.FileOutputStream...

    java压缩  GZIP进行简单压缩,ZIP进行多文件保存

    Center

    package org.rui.io.compress;

    import java.io.BufferedOutputStream;

    import java.io.BufferedReader;

    import java.io.FileInputStream;

    import java.io.FileOutputStream;

    import java.io.FileReader;

    import java.io.InputStreamReader;

    import java.util.zip.GZIPInputStream;

    import java.util.zip.GZIPOutputStream;

    /**

    * 用GZIP进行简单压缩

    * @author lenovo

    *

    */

    public class GZIPcompress {

    static String path="D:\\Users\\liangrui\\workspace\\thinking\\src\\org\\rui\\io\\compress\\";

    static String [] arg=new String[]{path+"GZIPcompress.java"};

    public static void main(String[] args) throws Exception {

    //in

    BufferedReader in=new BufferedReader(new FileReader(arg[0]));

    //out

    BufferedOutputStream out=new BufferedOutputStream(new GZIPOutputStream(

    new FileOutputStream("test.gz")

    ));

    System.out.println("writing file");

    int c;

    while((c=in.read())!=-1)

    {

    out.write(c);

    }

    //close

    in.close();

    out.close();

    System.out.println("reading file================");

    BufferedReader br=new BufferedReader(

    new InputStreamReader(

    new GZIPInputStream(

    new FileInputStream("test.gz")

    )

    )

    );

    String s;

    while((s=br.readLine())!=null)

    System.out.println(s);

    }

    }

    6535c8c0eadadfbd6c8065b96126d012.png

    package org.rui.io.compress;

    import java.io.BufferedInputStream;

    import java.io.BufferedOutputStream;

    import java.io.BufferedReader;

    import java.io.File;

    import java.io.FileInputStream;

    import java.io.FileNotFoundException;

    import java.io.FileOutputStream;

    import java.io.FileReader;

    import java.util.Enumeration;

    import java.util.zip.Adler32;

    import java.util.zip.CheckedInputStream;

    import java.util.zip.CheckedOutputStream;

    import java.util.zip.ZipEntry;

    import java.util.zip.ZipFile;

    import java.util.zip.ZipInputStream;

    import java.util.zip.ZipOutputStream;

    /**

    * 用Zip进行多文件保存

    * @author lenovo

    *

    */

    public class ZipCompress {

    //static String path="D:\\Users\\liangrui\\workspace\\thinking\\src\\org\\rui\\io\\compress\\";

    static String path=new File("").getAbsolutePath()+"\\src\\org\\rui\\io\\compress\\";

    static String [] arg=new String[]{path+"GZIPcompress.java",path+"ZipCompress.java"};

    public static void main(String[] args) throws Exception {

    //out

    FileOutputStream f=new FileOutputStream("test.zip");

    CheckedOutputStream cos=new CheckedOutputStream(f,new Adler32());

    ZipOutputStream zos=new ZipOutputStream(cos);

    //out

    BufferedOutputStream out=new BufferedOutputStream(zos);

    zos.setComment("A test of java zipping");

    for(String s:arg)

    {

    System.out.println("writing file "+s);

    BufferedReader in =new BufferedReader(new FileReader(s));

    //

    zos.putNextEntry(new ZipEntry(s));

    int c;

    while((c=in.read())!=-1){

    out.write(c);

    }

    in.close();

    out.flush();

    }

    out.close();

    //checksum valid only after the file has been closed!

    System.out.println("reading file================");

    FileInputStream fi=new FileInputStream("test.zip");

    CheckedInputStream csumi=new CheckedInputStream(fi,new Adler32());

    ZipInputStream zis=new ZipInputStream(csumi);

    BufferedInputStream bis=new BufferedInputStream(zis);

    ZipEntry ze;

    while((ze=zis.getNextEntry())!=null)

    {

    System.out.println("Reading file "+ze);

    int x;

    while((x=bis.read())!=-1)

    {

    //System.out.print((char)x);

    System.out.write(x);

    }

    }

    //

    if(arg.length==1)

    System.out.println("checksum:"+csumi.getChecksum().getValue());

    bis.close();

    //alternative way to open and read zip files

    ZipFile zf=new ZipFile("test.zip");

    Enumeration e=zf.entries();

    while(e.hasMoreElements())

    {

    ZipEntry ze2=(ZipEntry) e.nextElement();

    System.out.println("file:"+ze2);

    //...and extract the data as before

    }

    /*if(arg.length==1)*/

    }

    }

    b4ae557480da2e758b917db8bd691d67.png

    3d94a6e295c98e4edddb8708affbd07f.png

    c046a3dc86176485982115880afa76f7.png

    展开全文
  • 一、说明rar格式的压缩包收费,java支持zip格式的压缩和解压二、工具类import java.io.*;import java.util.Enumeration;import java.util.List;import java.util.zip.ZipEntry;import java.util.zip.ZipFile;import ...

    一、说明

    rar格式的压缩包收费,java支持zip格式的压缩和解压

    二、工具类

    import java.io.*;

    import java.util.Enumeration;

    import java.util.List;

    import java.util.zip.ZipEntry;

    import java.util.zip.ZipFile;

    import java.util.zip.ZipOutputStream;

    public class ZipUtils {

    private static final int BUFFER_SIZE = 2 * 1024;

    /**

    * zip解压

    * @param srcFile zip源文件

    * @param destDirPath 解压后的目标文件夹

    * @throws RuntimeException 解压失败会抛出运行时异常

    */

    public static void unZip(File srcFile, String destDirPath) throws RuntimeException {

    long start = System.currentTimeMillis();

    // 判断源文件是否存在

    if (!srcFile.exists()) {

    throw new RuntimeException(srcFile.getPath() + "所指文件不存在");

    }

    // 开始解压

    ZipFile zipFile = null;

    try {

    zipFile = new ZipFile(srcFile);

    Enumeration> entries = zipFile.entries();

    while (entries.hasMoreElements()) {

    ZipEntry entry = (ZipEntry) entries.nextElement();

    System.out.println("解压" + entry.getName());

    // 如果是文件夹,就创建个文件夹

    if (entry.isDirectory()) {

    String dirPath = destDirPath + "/" + entry.getName();

    File dir = new File(dirPath);

    dir.mkdirs();

    } else {

    // 如果是文件,就先创建一个文件,然后用io流把内容copy过去

    File targetFile = new File(destDirPath + "/" + entry.getName());

    // 保证这个文件的父文件夹必须要存在

    if(!targetFile.getParentFile().exists()){

    targetFile.getParentFile().mkdirs();

    }

    targetFile.createNewFile();

    // 将压缩文件内容写入到这个文件中

    InputStream is = zipFile.getInputStream(entry);

    FileOutputStream fos = new FileOutputStream(targetFile);

    int len;

    byte[] buf = new byte[BUFFER_SIZE];

    while ((len = is.read(buf)) != -1) {

    fos.write(buf, 0, len);

    }

    // 关流顺序,先打开的后关闭

    fos.close();

    is.close();

    }

    }

    long end = System.currentTimeMillis();

    System.out.println("解压完成,耗时:" + (end - start) +" ms");

    } catch (Exception e) {

    throw new RuntimeException("unzip error from ZipUtils", e);

    } finally {

    if(zipFile != null){

    try {

    zipFile.close();

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    }

    }

    /**

    * 压缩成ZIP 方法

    * @param srcFiles 需要压缩的文件列表

    * @param out 压缩文件输出流

    * @throws RuntimeException 压缩失败会抛出运行时异常

    */

    public static void toZip(List srcFiles , OutputStream out)throws Exception {

    long start = System.currentTimeMillis();

    ZipOutputStream zos = null ;

    try {

    zos = new ZipOutputStream(out);

    for (File srcFile : srcFiles) {

    byte[] buf = new byte[BUFFER_SIZE];

    zos.putNextEntry(new ZipEntry(srcFile.getName()));

    int len;

    FileInputStream in = new FileInputStream(srcFile);

    while ((len = in.read(buf)) != -1){

    zos.write(buf, 0, len);

    }

    zos.closeEntry();

    in.close();

    }

    long end = System.currentTimeMillis();

    System.out.println("压缩完成,耗时:" + (end - start) +" ms");

    } catch (Exception e) {

    throw new RuntimeException("zip error from ZipUtils",e);

    }finally{

    if(zos != null){

    try {

    zos.close();

    } catch (Exception e) {

    e.printStackTrace();

    }

    }

    }

    }

    }

    三、使用工具类压缩和解压文件

    import com.szfore.utils.ZipUtils;

    import java.io.File;

    import java.io.FileOutputStream;

    import java.io.OutputStream;

    import java.util.ArrayList;

    import java.util.List;

    public class TestZip {

    public static void main(String[] args) throws Exception{

    //testToZip();

    testUnzip();

    }

    /**

    * 测试压缩文件

    */

    public static void testToZip() throws Exception {

    File file1 = new File("c:\\1.txt");

    File file2 = new File("c:\\2.txt");

    List files = new ArrayList();

    files.add(file1);

    files.add(file2);

    OutputStream out = new FileOutputStream("c:\\1.zip");

    ZipUtils.toZip(files,out);

    }

    /**

    * 测试解压文件

    * @throws Exception

    */

    public static void testUnzip() throws Exception{

    File srcFile = new File("c:\\2.zip");

    String destDirPath = "c:\\";

    ZipUtils.unZip(srcFile,destDirPath);

    }

    }

    展开全文
  • 手机怎么解压zip文件 安卓手机zip文件怎么打开?Zip格式的文件是一种经过压缩文件,通过压缩之后,文件的体积会变小,从而更有利于在网络上传播。经过压缩文件,如果想要再次使用,就必须通过解压缩后才能使用。...
  • 就是下方这个样子,包括360zip,winrar等,我就奇怪了,添加可以添加注释,为啥这个不可以看呢,也许我打开姿势不对 作为一名资深的IT人士,肯定就想着看看里头有啥密码,源码里头有没有自己想要的东西,果不其然...
  • using (FileStream fs = File.OpenRead(topDirName + file)) //打开压缩文件 { byte[] buffer = new byte[fs.Length]; fs.Read(buffer, 0, buffer.Length); //读取文件流 ZipEntry entry = new Zip...
  • 情况是,我有一个zip文件,里面有一个Excel文件....因此,用户应该能够解压缩...当用户尝试解压缩文件时,他应该能够这样做.当他试图打开Excel文件(在解压缩文件夹中)时,它必须要求输入密码.问题类似于Protect excel file...
  • 既然你只是想学习如何打包.... // 最终生成的文件名(含路径)// 生成文件$zip = new ZipArchive (); // 使用本类,linux需开启zlib,windows需取消php_zip.dll前的注释if ($zip->open ( $filena...
  • except: passelse: with open(outPath+"/"+outname[l-1],"wb") asoutfile:#要把中文的zip解压出中文,就不要用extract了,在新位置创建中文名文件,然后把读取出来的数据写进去就可以。 outfile.write(zf.read(info)...
  • 我有一个PHP网站有很多媒体文件,用户需要能够一次下载多个文件...这是非常好的结果文件可以打开每个zip程序,我尝试没有错误,除了OS X的默认解压缩程序,存档实用程序.您双击.zip文件,并且Archive Utility决定它不是...
  • 压缩工作,但在压缩文件中包含特定phing文件集的工作除外>当我调试时,我可以在phing的ZIP任务中看到ZipArchive :: close返回false.错误字符串显示“权限被拒绝”.在手册中声明close()是实际写入文件的内容.>它...
  • 我们都知道.zip格式的压缩文件在Mac OS X上是默认支持解压缩的,但有时候我们打开zip文件时,却自动变成了.cpgz格式的文件。如果再使用归档工具打开,又会重新变回.zip格式的压缩包,如此循环下去。那么为什么会出现...
  • 最近在看java解压缩,发现RAR没有公开加密算法,所以java内部没有提供api解压,当时就觉得郁闷的,结果在网上查阅了一些,发现了一个思路,就是可以调用系统的命令解压文件,下面是解压的RAR文件的方法package zip;...
  • 通过ZipInStream类将压缩文件解压到指定的文件夹中:源程序是:import java.io.*;import java.util.zip.*;public class Decompressing { // 创建文件public static void main(String[] temp) {ZipInputStream zin; /...
  • 7zip怎么使用?随着互联网的飞速发展,如何将文件如何压缩的更小也是十分重要的一环。而7zip就是一款十分好用的压缩软件。对于还不是很了解如何使用这款软件的小伙伴们,下面就为大家带来详细的使用教程。7zip使用...
  • 我们都知道.zip格式的压缩文件在Mac OS X上是默认支持解压缩的,但有时候我们打开zip文件时,却自动变成了.cpgz格式的文件。如果再使用归档工具打开,又会重新变回.zip格式的压缩包,如此循环下去。那么为什么会出现...
  • 简单地说就是将一个或多个数据文件通过工具打包压缩,最后得到一个体积较小的、以“.zip”为扩展名的文件,同类型的文件还有rar格式、7z格式等,后两种格式的压缩文件相比前者在处理效率上要更高些。如果想要打开...
  • a)Zip是一种存档格式,而gzip则不是.因此,除非(例如)你的gz文件是压缩的tar文件,否则入口迭代器没有多大意义.你想要的可能是:File ...b)你只想解压缩文件吗?如果不是,您可以使用GZIPInputStream直接读取文件,...
  • 目前我正在做一个程序模块,需要从zip...用好压打开那个压缩文件显示压缩算法是Store。 补充:后来我用zlib来提取一个压缩算法是deflate的zip压缩文件提取成功了。现在面临的问题是Store压缩算法的zip文件怎么提取呢?
  • 通过 sudo apt-get install p7...之后就能够通过鼠标右键选择 提取到此处 直接解压压缩文件。 deng@deng-Lenovo:~$ sudo apt-get install p7zip-rar [sudo] password for deng: 正在读取软件包列表... 完毕 正在分...
  • 很多小伙伴都遇到过apk文件怎么打开的困惑吧,一些朋友看过网上零散的apk文件怎么打开的处理方法,并没有完完全全明白apk文件怎么打开是如何解决的,今天小编准备了简单的解决办法,只需要按照1:其实apk文件严格来...
  • zipfilp.ZipFile 表示创建一个zip对象zipfile.ZipFile(file[,mode[,compression[,allowZip64]]])#file表示文件的路径#mode表示文件打开模式:r表示读,默认;w表示写入,没有则新建,有则覆盖;a表示追加写入。#...
  • createZipNoTopDir('test.docx.zip', '1.docx');/*** 生成压缩包,不带要压缩文件夹的根目录* @param string $zipNamePath要生成的压缩包名* @param string $basePath进行压缩的文件夹路径* @param string $newdir新...
  • jar文件怎么打开,以为是压缩包,直接就解压了,但是并没有什么用。...也就是一个压缩文件。 JAR 文件格式提供了许多优势和功能,其中很多是传统的压缩格式如ZIP或者RAR所没有提供的,不知win10系统jar文件...
  • 也就是一个压缩文件。 JAR 文件格式提供了许多优势和功能,其中很多是传统的压缩格式如ZIP或者RAR所没有提供的,那么如何打开jar文件?下面,小编就来跟大家介绍打开jar文件的操作技巧了。可以对JAR文件内容加上数字...
  • 某些压缩格式有时允许我们以60%的比率(甚至更高)压缩文件。下面我将会给大家演示如何用这些命令在Linux下面去压缩文件或者目录。我们将学习zip, tar, tar.gz和tar.bz2等压缩格式的基本用法。这几个是在Linux里面...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 142
精华内容 56
关键字:

压缩文件zip怎么打开