java文件夹压缩与解压

简介:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
import  java.io.BufferedInputStream;
import  java.io.BufferedOutputStream;
import  java.io.File;
import  java.io.FileOutputStream;
import  java.io.InputStream;
import  java.io.OutputStream;
import  java.util.Enumeration;
import  java.util.zip.ZipEntry;
import  java.util.zip.ZipFile;
public  class  ZipOutputStreamTest {
       
     //解压功能
       public  static  void  upZipFile()  throws  Exception{
             ZipFile zfile= new  ZipFile( "d:\\00000120131125.zip" );
             Enumeration zList=zfile.entries();
             ZipEntry ze= null ;
             byte [] buf= new  byte [ 1024 ];
             while (zList.hasMoreElements()){
                 ze=(ZipEntry)zList.nextElement();       
                 if (ze.isDirectory()){
                     File f= new  File( "D:\\" +ze.getName());
                     f.mkdir();
                     continue ;
                 }
                 OutputStream os= new  BufferedOutputStream( new  FileOutputStream(getRealFileName( "D:\\" , ze.getName())));
                 InputStream is= new  BufferedInputStream(zfile.getInputStream(ze));
                 int  readLen= 0 ;
                 while  ((readLen=is.read(buf,  0 1024 ))!=- 1 ) {
                     os.write(buf,  0 , readLen);
                 }
                 is.close();
                 os.close(); 
             }
             zfile.close();
         }  
       /**
         * 给定根目录,返回一个相对路径所对应的实际文件名.
         * @param baseDir 指定根目录
         * @param absFileName 相对路径名,来自于ZipEntry中的name
         * @return java.io.File 实际的文件
         */
         public  static  File getRealFileName(String baseDir, String absFileName){
             String[] dirs=absFileName.split( "/" );
             File ret= new  File(baseDir);
             if (dirs.length> 1 ){
                 for  ( int  i =  0 ; i < dirs.length- 1 ;i++) {
                     ret= new  File(ret, dirs[i]);
                 }
                 if (!ret.exists())
                     ret.mkdirs();
                 ret= new  File(ret, dirs[dirs.length- 1 ]);
                 return  ret;
             }
             return  ret;
         }
     /**
      * @param args
      * @throws Exception
      */
     public  static  void  main(String[] args)  throws  Exception {
           
         ZipOutputStreamTest  zip =  new  ZipOutputStreamTest();
         zip.upZipFile();
         /*
          *
          * 文件夹压缩
         String xml;
              
          *  生成你的xml数据,存在String xml中。
              
             
         ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream("D://test.zip"));
         //声明ZipOutputStream,用来输出zip文件。
           File filename = new File("D://20096");
           if(!filename.exists()){
               filename.mkdirs();
           }
           File xmld = new File("D://20096//est.xml");
           if(!xmld.exists()){
               xmld.mkdirs();
           }
         ZipEntry entry = new ZipEntry("test.xml");
         //声明ZipEntry
             
         zipOut.putNextEntry(entry);
         //将entry加入到zipOut中。
             
         DataOutputStream dataOs = new DataOutputStream(zipOut);
         //利用DataOutputStream对ZipOutputStream进行包装。
         dataOs.writeUTF("UTF-8");
         //输出zip文件。
         dataOs.close();
     */ }
}本文转自yunlielai51CTO博客,原文链接:http://blog.51cto.com/4925054/1331155,如需转载请自行联系原作者

相关文章
|
2月前
|
存储 Java 文件存储
如何用 Java 压缩 ZIP 文件?
【2月更文挑战第21天】
37 1
|
4月前
|
分布式计算 Hadoop Java
hadoop java 创建文件夹 弹出窗口填写文件夹名称
hadoop java 创建文件夹 弹出窗口填写文件夹名称
29 0
|
5月前
|
Java 关系型数据库 Linux
Linux|Java|jar包的解压和重新打包(更新配置)
Linux|Java|jar包的解压和重新打包(更新配置)
82 0
|
4月前
|
存储 算法 Java
从零开始学习 Java:简单易懂的入门指南之IO序列化、打印流、压缩流(三十三)
从零开始学习 Java:简单易懂的入门指南之IO序列化、打印流、压缩流(三十三)
|
6月前
|
Java
java 读取文件 获取byte[]字节 并执行Gzip的压缩和解压
java 读取文件 获取byte[]字节 并执行Gzip的压缩和解压
51 0
|
1月前
|
Java
Java创建文件夹Java复制文件复制文件夹
Java创建文件夹Java复制文件复制文件夹
15 0
|
6月前
|
Java
Java实现多文件打包成压缩包下载
Java实现多文件打包成压缩包下载
183 0
|
20天前
|
Java
java判断文件夹大小
将 `/path/to/your/folder`替换为要计算大小的文件夹的实际路径。这段代码将递归计算文件夹及其子文件夹中所有文件的大小,并以MB为单位输出文件夹的大小。
24 0
|
28天前
|
Java 大数据 测试技术
Java对象头压缩---- 永久为Java应用“降本增效”
本文介绍了一下OpenJDK的最新技术,对象头压缩,来大幅优化Java对象的内存占用。
|
6月前
|
存储 算法 NoSQL
Zstandard (zstd)压缩算法在JAVA上的使用
Zstandard (zstd)压缩算法在JAVA上的使用
297 0