<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Java on Line

    和java的日子!

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      8 隨筆 :: 0 文章 :: 28 評論 :: 0 Trackbacks
    壓縮文件夾代碼:
    import java.io.File;
    import org.apache.tools.zip.ZipOutputStream; //這個包在ant.jar里,要到官方網下載
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.util.zip.ZipInputStream;
    import java.util.zip.ZipEntry;

    public class CompressBook {
        
    public CompressBook() {}

        
    /*
        * inputFileName 輸入一個文件夾
        * zipFileName 輸出一個壓縮文件夾
        
    */

        
    public void zip(String inputFileName) throws Exception {
            String zipFileName 
    = "c:\\test.zip"//打包后文件名字
            System.out.println(zipFileName);
            zip(zipFileName, 
    new File(inputFileName));
        }


        
    private void zip(String zipFileName, File inputFile) throws Exception {
            ZipOutputStream out 
    = new ZipOutputStream(new FileOutputStream(zipFileName));
            zip(out, inputFile, 
    "");
            System.out.println(
    "zip done");
            out.close();
        }


        
    private void zip(ZipOutputStream out, File f, String base) throws Exception {
            
    if (f.isDirectory()) {
               File[] fl 
    = f.listFiles();
               out.putNextEntry(
    new org.apache.tools.zip.ZipEntry(base + "/"));
               base 
    = base.length() == 0 ? "" : base + "/";
               
    for (int i = 0; i < fl.length; i++{
               zip(out, fl[i], base 
    + fl[i].getName());
             }

            }
    else {
               out.putNextEntry(
    new org.apache.tools.zip.ZipEntry(base));
               FileInputStream in 
    = new FileInputStream(f);
               
    int b;
               System.out.println(base);
               
    while ( (b = in.read()) != -1{
                out.write(b);
             }

             in.close();
           }

        }


        
    public static void main(String [] temp){
            CompressBook book 
    = new CompressBook();
            
    try {
               book.zip(
    "c:\\c");//你要壓縮的文件夾
            }
    catch (Exception ex) {
               ex.printStackTrace();
           }

        }

    }

    壓縮文件代碼:
    import java.io.*;
    import java.util.zip.*;//ZipOutputStream這個流在這里
    import java.util.*;

    public class ZipOutputStreamTest
    {
         
    public static void main(String[] args) throws Exception
         
    {
           File f 
    = new File("a.jpg");
           FileInputStream fis 
    = new FileInputStream(f);
           BufferedInputStream bis 
    = new BufferedInputStream(fis);
           
    byte[] buf = new byte[1024];
           
    int len;
           FileOutputStream fos 
    = new FileOutputStream(f.getName()+".zip");
           BufferedOutputStream bos 
    = new BufferedOutputStream(fos);
           ZipOutputStream zos 
    = new ZipOutputStream(bos);//壓縮包
           ZipEntry ze = new ZipEntry(f.getName());//這是壓縮包名里的文件名
           zos.putNextEntry(ze);//寫入新的 ZIP 文件條目并將流定位到條目數據的開始處

           
    while((len=bis.read(buf))!=-1)
           
    {
              zos.write(buf,
    0,len);
              zos.flush();
           }

           bis.close();
           zos.close(); 
         }

    }
    posted on 2007-08-24 00:33 陳東 閱讀(40888) 評論(24)  編輯  收藏 所屬分類: Java基礎

    評論

    # re: 用java壓縮文件夾/文件[未登錄] 2007-11-10 14:36 ad
    不錯 謝謝了  回復  更多評論
      

    # re: 用java壓縮文件夾/文件 2008-01-27 22:54
    試過,真不錯,謝謝了.  回復  更多評論
      

    # re: 用java壓縮文件夾/文件 2008-06-23 18:49 flymz
    我用java.util.zip.ZipOutputStream;這個包也可以壓縮!  回復  更多評論
      

    # re: 用java壓縮文件夾/文件 2008-10-12 21:17 xh
    可以集成進jdk了  回復  更多評論
      

    # re: 用java壓縮文件夾/文件 2009-03-06 09:31 sem
    非常感謝!  回復  更多評論
      

    # re: 用java壓縮文件夾/文件 2010-07-14 15:44 ne_akari
    這代碼寫的真不規范。
    把所有異常全都拋出去,算什么回事。
    in.close();
    這句代碼,從語法上說:變量in明明是個局部變量,怎么會在代碼塊外面關閉。
    從邏輯上說:不管是在處理文件夾還是文件,都要執行,那是什么邏輯。
    博主最好能做個修改再放出來,以免誤導別人。  回復  更多評論
      

    # re: 用java壓縮文件夾/文件 2010-11-16 13:25 ww
    @flymz

    碰到中文就會有亂碼 用這個  回復  更多評論
      

    # re: 用java壓縮文件夾/文件[未登錄] 2010-11-19 17:16 test
    @ne_akari
    噴子?有異常了不拋出留著干什么?  回復  更多評論
      

    # re: 用java壓縮文件夾/文件 2011-06-15 12:47 tye
    中文亂碼  回復  更多評論
      

    # re: 用java壓縮文件夾/文件 2011-09-14 09:44 eppen
    @ne_akari
    作為基類應該拋出異常,業務類負責捕獲并定制錯誤消息  回復  更多評論
      

    # re: 用java壓縮文件夾/文件 2011-10-03 11:35 易元
    總得處理一下了啊,各種異常都往上拋,下邊不處理,拋到上邊也不處理,這也叫異常處理嗎???這只不過是編譯器不報錯罷了。  回復  更多評論
      

    # re: 用java壓縮文件夾/文件 2011-11-15 22:04 fskjb01
    @ne_akari
    人家只是說清楚問題(不清楚看標題),而把不相干的省略下而已,你這么多意見干嘛!!  回復  更多評論
      

    # re: 用java壓縮文件夾/文件 2011-12-15 16:44 hello223
    瞎說八道  回復  更多評論
      

    # re: 用java壓縮文件夾/文件 2012-04-28 12:40 路人
    @ne_akari
    當然要拋出去了異常吃了 別人都看不到才不規范呢
      回復  更多評論
      

    # re: 用java壓縮文件夾/文件 2012-05-08 15:59 t
    你看錯了吧,博主只不過{}位置對應錯了,in是沒問題的!
    else {
    out.putNextEntry(new org.apache.tools.zip.ZipEntry(base));
    FileInputStream in = new FileInputStream(f);
    int b;
    System.out.println(base);
    while ( (b = in.read()) != -1) {
    out.write(b);
    }
    in.close();
    }  回復  更多評論
      

    # re: 用java壓縮文件夾/文件[未登錄] 2012-12-15 15:10 小菜鳥
    中文咋辦  回復  更多評論
      

    # re: 用java壓縮文件夾/文件 2013-03-14 14:34 forecle
    人家只給你個示例,具體的你自已去寫啊,想得到直接就能用的,你也真夠臉皮厚的!沒本事!  回復  更多評論
      

    # re: 用java壓縮文件夾/文件[未登錄] 2013-05-10 23:49
    沒有注釋,苦逼啊。。。  回復  更多評論
      

    # 回復@ne_akari 2013-07-04 21:15 asd
    @ne_akari
    你就是個純傻 逼 還噴別人。。要別人寫好再放出來
    你自己看仔細了再說人家  回復  更多評論
      

    # re: 用java壓縮文件夾/文件[未登錄] 2013-07-23 09:20 張三
    @tye
    http://wlh.iteye.com/blog/134451

    這個鏈接里面的不會亂碼  回復  更多評論
      

    # 寫的真不錯 2013-07-25 17:50 沈坤林
    寫的真不錯,代碼拿出來就能執行,感謝感謝啊!  回復  更多評論
      

    # re: 用java壓縮文件夾/文件 2014-04-22 15:35 路人
    @ne_akari
    你個二逼,自己好好看看再說
      回復  更多評論
      

    # re: 用java壓縮文件夾/文件 2014-05-08 21:24 路人
    壓縮文件夾時,有問題吧,會多出一個文件夾來。  回復  更多評論
      

    # re: 用java壓縮文件夾/文件 2015-03-28 16:57 XURUIYANG
    YASUO  回復  更多評論
      

    主站蜘蛛池模板: 特级毛片aaaa免费观看| 久久精品国产99精品国产亚洲性色| 国产香蕉九九久久精品免费| 最近免费中文字幕大全高清大全1 最近免费中文字幕mv在线电影 | 无码免费一区二区三区免费播放 | 日韩亚洲翔田千里在线| 亚洲国产精品ⅴa在线观看| 亚洲中文字幕久久精品无码VA| 久久久久se色偷偷亚洲精品av| 亚洲AV一二三区成人影片| 亚洲免费黄色网址| 色婷五月综激情亚洲综合| 国产v亚洲v天堂a无| 亚洲精品欧美综合四区| 精品亚洲av无码一区二区柚蜜| 国产精品亚洲小说专区| 一级看片免费视频囗交| 久久er国产精品免费观看8| 在线免费观看伊人三级电影| 国产精品免费观看调教网| 99在线在线视频免费视频观看 | a级毛片免费网站| 精品国产免费一区二区三区香蕉| 无码av免费一区二区三区试看| 在免费jizzjizz在线播| 成人免费午夜在线观看| 日本免费一区二区三区最新| 亚洲国产V高清在线观看| 亚洲欧洲无码AV电影在线观看| 亚洲爆乳无码专区| 亚洲午夜电影在线观看| 亚洲国产成人AV在线播放| 一级中文字幕免费乱码专区| 最近中文字幕免费大全| 亚洲成人免费网站| 免费人成视频x8x8入口| 国产V亚洲V天堂无码久久久| 亚洲午夜久久久精品电影院| 亚洲AV成人无码网站| 免费h视频在线观看| 人妻视频一区二区三区免费|