<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 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      8 隨筆 :: 0 文章 :: 28 評(píng)論 :: 0 Trackbacks
    壓縮文件夾代碼:
    import java.io.File;
    import org.apache.tools.zip.ZipOutputStream; //這個(gè)包在ant.jar里,要到官方網(wǎng)下載
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.util.zip.ZipInputStream;
    import java.util.zip.ZipEntry;

    public class CompressBook {
        
    public CompressBook() {}

        
    /*
        * inputFileName 輸入一個(gè)文件夾
        * zipFileName 輸出一個(gè)壓縮文件夾
        
    */

        
    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這個(gè)流在這里
    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 文件條目并將流定位到條目數(shù)據(jù)的開始處

           
    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) 評(píng)論(24)  編輯  收藏 所屬分類: Java基礎(chǔ)

    評(píng)論

    # re: 用java壓縮文件夾/文件[未登錄] 2007-11-10 14:36 ad
    不錯(cuò) 謝謝了  回復(fù)  更多評(píng)論
      

    # re: 用java壓縮文件夾/文件 2008-01-27 22:54
    試過,真不錯(cuò),謝謝了.  回復(fù)  更多評(píng)論
      

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

    # re: 用java壓縮文件夾/文件 2008-10-12 21:17 xh
    可以集成進(jìn)jdk了  回復(fù)  更多評(píng)論
      

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

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

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

    碰到中文就會(huì)有亂碼 用這個(gè)  回復(fù)  更多評(píng)論
      

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

    # re: 用java壓縮文件夾/文件 2011-06-15 12:47 tye
    中文亂碼  回復(fù)  更多評(píng)論
      

    # re: 用java壓縮文件夾/文件 2011-09-14 09:44 eppen
    @ne_akari
    作為基類應(yīng)該拋出異常,業(yè)務(wù)類負(fù)責(zé)捕獲并定制錯(cuò)誤消息  回復(fù)  更多評(píng)論
      

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

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

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

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

    # re: 用java壓縮文件夾/文件 2012-05-08 15:59 t
    你看錯(cuò)了吧,博主只不過{}位置對(duì)應(yīng)錯(cuò)了,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();
    }  回復(fù)  更多評(píng)論
      

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

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

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

    # 回復(fù)@ne_akari 2013-07-04 21:15 asd
    @ne_akari
    你就是個(gè)純傻 逼 還噴別人。。要?jiǎng)e人寫好再放出來
    你自己看仔細(xì)了再說人家  回復(fù)  更多評(píng)論
      

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

    這個(gè)鏈接里面的不會(huì)亂碼  回復(fù)  更多評(píng)論
      

    # 寫的真不錯(cuò) 2013-07-25 17:50 沈坤林
    寫的真不錯(cuò),代碼拿出來就能執(zhí)行,感謝感謝??!  回復(fù)  更多評(píng)論
      

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

    # re: 用java壓縮文件夾/文件 2014-05-08 21:24 路人
    壓縮文件夾時(shí),有問題吧,會(huì)多出一個(gè)文件夾來。  回復(fù)  更多評(píng)論
      

    # re: 用java壓縮文件夾/文件 2015-03-28 16:57 XURUIYANG
    YASUO  回復(fù)  更多評(píng)論
      

    主站蜘蛛池模板: 免费又黄又爽又猛的毛片 | 亚洲第一页日韩专区| 亚洲a视频在线观看| 久久受www免费人成_看片中文| 亚洲色图在线播放| 免费观看黄色的网站| 亚洲中文久久精品无码1| 成人五级毛片免费播放| 亚洲AV无码精品国产成人| 四虎在线免费视频| 亚洲精品中文字幕无码AV| 毛片免费全部播放无码| 亚洲AV无码无限在线观看不卡| 成人免费在线视频| 老司机午夜精品视频在线观看免费| 亚洲av无码成人精品区| 久久av免费天堂小草播放| 亚洲国产精品热久久| 18禁无遮挡无码网站免费| 亚洲av色香蕉一区二区三区蜜桃| 波多野结衣免费视频观看 | 久久国产精品成人免费| 久久亚洲AV无码精品色午夜| 成人无遮挡裸免费视频在线观看| jizzjizz亚洲日本少妇| 黑人大战亚洲人精品一区| 久久久久免费精品国产小说| 亚洲人成人77777在线播放| 国产网站免费观看| 国产日韩一区二区三免费高清| 日本久久久久亚洲中字幕| 免费的一级黄色片| 国产婷婷成人久久Av免费高清| 亚洲av无码片在线观看| 久久激情亚洲精品无码?V| 亚洲国产精品久久网午夜| 又粗又硬免费毛片| 日本道免费精品一区二区| 亚洲国产美女福利直播秀一区二区| 国产精品国产午夜免费福利看 | 亚洲最大无码中文字幕|