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

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

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

    Java,J2EE,Weblogic,Oracle

    java項目隨筆
    隨筆 - 90, 文章 - 6, 評論 - 61, 引用 - 0
    數據加載中……

    Java 壓縮、解壓zip

    import java.util.zip.ZipFile;
    import java.util.List;
    import java.io.File;
    import java.util.zip.ZipEntry;
    import java.util.ArrayList;
    import java.util.Enumeration;
    import org.apache.commons.logging.LogFactory;
    import org.apache.commons.logging.Log;
    import java.io.BufferedOutputStream;
    import java.io.FileOutputStream;
    import java.io.InputStream;
    import java.io.IOException;
    import java.io.OutputStream;

    /**
    ?* <p>預覽彩信的 smil? </p>
    ?*
    ?* <p>該類是解壓 zip 文件,及獲取 smil 文件的 url </p>
    ?*
    ?* <p>Copyright: Copyright (c) 2006</p>
    ?*
    ?* <p>卓望_山東168_CMS</p>
    ?*
    ?* @author 龔椿深 2006-11-13
    ?* @version 1.0
    ?*/
    public class UnZip {
    ??? private static Log logger = LogFactory.getLog(UnZip.class);
    ??? public UnZip() {
    ??? }

    ??? public static void unZipFile(String filename) {
    ??????? ZipEntry entry = null;
    ??????? InputStream in = null;
    ??????? BufferedOutputStream bout = null;
    ??????? ZipFile zip = null;
    ??????? try {
    ??????????? //創建目錄
    ??????????? String tagerpath = filename.substring(0, filename.lastIndexOf(".")); //獲取目錄名
    ??????????? File directory = new File(tagerpath);
    ??????????? directory.mkdirs();

    ??????????? File file = new File(filename);
    ??????????? zip = new ZipFile(file);
    ??????????? Enumeration save = zip.entries();
    ??????????? //遍歷Enumeration,進行保存操作
    ??????????? while (save.hasMoreElements()) {
    ??????????????? entry = (ZipEntry) save.nextElement();
    ??????????????? //當文件不為目錄時進行保存
    ??????????????? if (!entry.isDirectory() && !entry.getName().endsWith("zip")) {
    ??????????????????? //進行保存文件
    ??????????????????? in = zip.getInputStream(entry);
    ??????????????????? bout = new BufferedOutputStream(new FileOutputStream(
    ??????????????????????????? tagerpath + "/" + entry.getName()));
    ??????????????????? int rc = 0;
    ??????????????????? byte[] buf = new byte[102400];
    ??????????????????? while ((rc = in.read(buf, 0, 102400)) > 0) {
    ??????????????????????? bout.write(buf, 0, rc);
    ??????????????????? }
    ??????????????????? bout.flush();
    ??????????????? } else if (entry.getName().endsWith("zip")) {
    ??????????????????? //進行保存文件
    //??????????????????? InputStream input = new FileInputStream();
    ??????????????????? in = zip.getInputStream(entry);
    ??????????????????? OutputStream out = new FileOutputStream(tagerpath + "/" +
    ??????????????????????????? entry.getName());

    ??????????????????? // Transfer bytes from in to out
    ??????????????????? byte[] buf = new byte[1024];
    ??????????????????? int len;
    ??????????????????? while ((len = in.read(buf)) > 0) {
    ??????????????????????? out.write(buf, 0, len);
    ??????????????????? }
    ??????????????????? in.close();
    ??????????????????? out.close();
    ??????????????? }
    ??????????? }
    ??????? } catch (Exception e) {
    ??????????? logger.error("解壓文件不成功!!" + e.getMessage());
    ??????? }
    ??????? //關閉文件
    ??????? finally {
    ??????????? if (bout != null) {
    ??????????????? try {
    ??????????????????? bout.close();
    ??????????????? } catch (IOException er) {
    ??????????????????? logger.error(er.getMessage());
    ??????????????? }
    ??????????? }
    ??????????? if (in != null) {
    ??????????????? try {
    ??????????????????? in.close();
    ??????????????? } catch (IOException ex) {
    ??????????????????? logger.error(ex.getMessage());
    ??????????????? }
    ??????????? }
    ??????????? if (zip != null) {
    ??????????????? try {
    ??????????????????? zip.close();
    ??????????????? } catch (IOException ec) {
    ??????????????????? logger.error(ec.getMessage());
    ??????????????? }
    ??????????? }
    ??????? }
    ??? }


    ??? public static List getSmilList(String tagerpath) {
    ??????? File filepath = null;
    ??????? List list = null;
    ??????? try {
    ??????????? filepath = new File(tagerpath);
    ??????????? list = new ArrayList();

    ??????????? //找出擴展名為 smil 的文件,并加入到 list
    ??????????? File temp[] = filepath.listFiles();
    ??????????? for (int i = 0; i < temp.length; i++) {
    ??????????????? System.out.println("abs:"+temp[i].getAbsolutePath());
    ??????????????? System.out.println("can:"+temp[i].getCanonicalPath());
    ??????????????? System.out.println("path:"+temp[i].getPath());
    ??????????????? System.out.println("url:"+temp[i].toURI());
    ??????????????? if (temp[i].getAbsolutePath().toLowerCase().endsWith("smil")) {
    ??????????????????? list.add(temp[i].getAbsolutePath().toString());
    ??????????????? }
    ????????????? }
    ??????? } catch (Exception e) {
    ??????????? logger.error("UnZip-->getSmilList" + e.getMessage());
    ??????? }

    ??????? return list;
    ??? }
    //獲取文件列表
    ??? public static List getZipFileList(String filepath) {
    ??????? //定義zip中的實體
    ??????? ZipEntry entry = null;
    ??????? ZipFile zip = null;
    ??????? List list = new ArrayList();
    ??????? try {
    ??????????? File file = new File(filepath);
    ??????????? zip = new ZipFile(file);
    ??????????? //將zip中的每個實體放入Enumeration中
    ??????????? Enumeration num = zip.entries();
    ??????????? //遍歷Enumeration,判斷解壓文件是否已經存在
    ??????????? while (num.hasMoreElements()) {
    ??????????????? entry = (ZipEntry) num.nextElement();
    ??????????????? //把 smil 文件添加到列表中
    ??????????????? if (entry.getName().toLowerCase().endsWith("smil")) {
    ??????????????????? list.add(entry.getName());
    ??????????????? }
    ??????????? }
    ??????? } catch (Exception e) {
    ??????????? logger.error("解壓文件不成功!!" + e.getMessage());
    ??????? }
    ??????? return list;
    ??? }

    posted on 2006-11-17 09:53 龔椿深 閱讀(792) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 国产裸体美女永久免费无遮挡| 亚洲男人的天堂久久精品| 国产精品亚洲专区在线播放 | eeuss影院免费直达入口| 亚洲成av人片天堂网老年人 | 亚洲已满18点击进入在线观看| 97在线视频免费| 99亚洲精品高清一二区| 一级毛片**不卡免费播| 亚洲网址在线观看| 亚欧在线精品免费观看一区| 亚洲13又紧又嫩又水多| 成人毛片免费观看视频大全| 亚洲国产欧美一区二区三区| 四虎国产精品免费视| 亚洲视频在线免费| 亚洲av永久无码制服河南实里| 久久99国产乱子伦精品免费| 亚洲另类图片另类电影| 免费无遮挡无码视频网站| 国产亚洲人成在线影院| 亚洲午夜久久久影院| 伊人久久免费视频| 亚洲高清乱码午夜电影网| 免费人成网站在线高清| 花蝴蝶免费视频在线观看高清版| 久久亚洲精品成人综合| 天天操夜夜操免费视频| 无码人妻一区二区三区免费视频 | 亚洲午夜理论片在线观看| 免费国产在线观看老王影院| 岛国精品一区免费视频在线观看| 亚洲免费在线播放| AV免费网址在线观看| 久久精品免费大片国产大片 | 亚洲日韩精品无码专区加勒比 | 无码欧精品亚洲日韩一区夜夜嗨| 国产一级一毛免费黄片| 亚洲乱码一二三四区国产| 国产三级免费电影| 99精品一区二区免费视频|