亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? jarwriter.java

?? proguard 3.5 java 混淆器 最新 免費 好用的 大家用用試一下吧 天行健-君子以自強不息 地勢坤-君子以厚德載物
?? JAVA
字號:
/* $Id: JarWriter.java,v 1.3.2.1 2006/01/16 22:57:56 eric Exp $ * * ProGuard -- shrinking, optimization, and obfuscation of Java class files. * * Copyright (c) 2002-2006 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */package proguard.io;import java.io.*;import java.util.jar.*;import java.util.*;import java.util.zip.*;/** * This DataEntryWriter sends data entries to a given jar/zip file. * The manifest and comment properties can optionally be set. * * @author Eric Lafortune */public class JarWriter implements DataEntryWriter, Finisher{    private DataEntryWriter dataEntryWriter;    private Manifest        manifest;    private String          comment;    private OutputStream    currentParentOutputStream;    private ZipOutputStream currentJarOutputStream;    private Finisher        currentFinisher;    private String          currentEntryName;    // The names of the jar entries that are already in the jar.    private Set jarEntryNames = new HashSet();    /**     * Creates a new JarWriter without manifest or comment.     */    public JarWriter(DataEntryWriter dataEntryWriter)    {        this(dataEntryWriter, null, null);    }    /**     * Creates a new JarWriter.     */    public JarWriter(DataEntryWriter dataEntryWriter,                     Manifest        manifest,                     String          comment)    {        this.dataEntryWriter = dataEntryWriter;        this.manifest        = manifest;        this.comment         = comment;    }    // Implementations for DataEntryWriter.    public OutputStream getOutputStream(DataEntry dataEntry) throws IOException    {        return getOutputStream(dataEntry,  null);    }    public OutputStream getOutputStream(DataEntry dataEntry,                                        Finisher  finisher) throws IOException    {        // Get the parent stream, new or exisiting.        // This may finish our own jar output stream.        OutputStream parentOutputStream =            dataEntryWriter.getOutputStream(dataEntry.getParent(), this);        // Did we get a stream?        if (parentOutputStream == null)        {            return null;        }        // Do we need a new stream?        if (currentParentOutputStream == null)        {            currentParentOutputStream = parentOutputStream;            // Create a new jar stream, with a manifest, if set.            currentJarOutputStream = manifest != null ?                new JarOutputStream(parentOutputStream, manifest) :                new ZipOutputStream(parentOutputStream);            // Add a comment, if set.            if (comment != null)            {                currentJarOutputStream.setComment(comment);            }        }        // Get the entry name.        String name = dataEntry.getName();        // Do we need a new entry?        if (!name.equals(currentEntryName))        {            // Close the previous ZIP entry, if any.            closeEntry();            // We have to check if the name is already used, because ZipOutputStream            // doesn't handle this case properly (it throws an exception which can            // be caught, but the ZipDataEntry is remembered anyway).            if (!jarEntryNames.add(name))            {                throw new IOException("Duplicate zip entry ["+dataEntry+"]");            }            // Create a new entry.            currentJarOutputStream.putNextEntry(new ZipEntry(name));            currentFinisher  = finisher;            currentEntryName = name;        }        return currentJarOutputStream;    }    public void finish() throws IOException    {        // Finish the entire ZIP stream, if any.        if (currentJarOutputStream != null)        {            // Close the previous ZIP entry, if any.            closeEntry();            // Finish the entire ZIP stream.            currentJarOutputStream.finish();            currentJarOutputStream    = null;            currentParentOutputStream = null;            jarEntryNames.clear();        }    }    public void close() throws IOException    {        // Close the parent stream.        dataEntryWriter.close();    }    // Small utility methods.    /**     * Closes the previous ZIP entry, if any.     */    private void closeEntry() throws IOException    {        if (currentEntryName != null)        {            // Let any finisher finish up first.            if (currentFinisher != null)            {                currentFinisher.finish();                currentFinisher = null;            }            currentJarOutputStream.closeEntry();            currentEntryName = null;        }    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲高清免费在线| 欧美一级国产精品| 1区2区3区欧美| 91视频在线看| 亚洲一区二区在线视频| 欧美日韩中字一区| 日韩 欧美一区二区三区| 欧美大片在线观看| 成人激情动漫在线观看| 夜夜操天天操亚洲| 日韩视频在线观看一区二区| 紧缚捆绑精品一区二区| 国产精品不卡一区二区三区| 欧美在线你懂的| 久久97超碰色| 中文字幕中文字幕一区二区| 91国产免费看| 精品一区二区av| 最新欧美精品一区二区三区| 欧美视频一区二区在线观看| 久草热8精品视频在线观看| 久久婷婷成人综合色| 色欲综合视频天天天| 久久aⅴ国产欧美74aaa| 亚洲人xxxx| 亚洲精品免费视频| 91精品国产福利| 成av人片一区二区| 日本美女一区二区三区| 最近中文字幕一区二区三区| 正在播放一区二区| 成人免费观看av| 日韩精品一级二级| 亚洲色图制服诱惑| 2023国产精品自拍| 欧美日韩高清在线| 91影院在线免费观看| 久久99蜜桃精品| 亚洲一级二级三级在线免费观看| 久久久777精品电影网影网| 欧美亚洲图片小说| av在线不卡免费看| 国产一区美女在线| 日韩av中文字幕一区二区三区| 国产精品国产三级国产aⅴ无密码| 欧美一区二区三区视频在线观看 | 91麻豆国产精品久久| 九一九一国产精品| 亚州成人在线电影| 自拍偷拍欧美精品| 国产日韩av一区二区| 91精品国产91久久综合桃花| 91亚洲国产成人精品一区二三| 国模无码大尺度一区二区三区| 亚洲.国产.中文慕字在线| 亚洲精选一二三| 成人欧美一区二区三区1314| 欧美精品一区二区三区在线| 6080yy午夜一二三区久久| 91蜜桃传媒精品久久久一区二区| 国产精品18久久久久| 免费国产亚洲视频| 秋霞电影网一区二区| 无吗不卡中文字幕| 亚洲一区二区成人在线观看| 亚洲啪啪综合av一区二区三区| 国产免费成人在线视频| 久久久亚洲精品石原莉奈| 精品电影一区二区| 性久久久久久久久| 一区二区三区四区乱视频| 国产精品久久久久久久久搜平片| 国产欧美日产一区| 国产精品国模大尺度视频| 国产精品无人区| 中文字幕第一页久久| 国产精品久久看| 国产精品美女久久久久aⅴ| 欧美激情一区二区三区全黄| 欧美国产一区在线| 日韩久久一区二区| 一区二区三区不卡在线观看| 亚洲人成网站色在线观看| 一级女性全黄久久生活片免费| 一区二区不卡在线播放| 亚洲主播在线观看| 日韩国产精品大片| 毛片av一区二区| 国产成人午夜精品5599| 成人激情小说网站| 日本乱人伦aⅴ精品| 欧美美女直播网站| 久久影院电视剧免费观看| 欧美国产精品专区| 一级日本不卡的影视| 日韩av一区二区三区四区| 麻豆精品视频在线观看| 国产91高潮流白浆在线麻豆| av一二三不卡影片| 欧美性生活影院| 日韩一级欧美一级| 中文字幕欧美日韩一区| 一区二区欧美视频| 91捆绑美女网站| 欧美精品久久99| 国产欧美一区二区精品秋霞影院| 中文字幕一区二区三区在线观看 | 欧美日韩中文一区| 欧美精品一区二区三区久久久| 欧美国产日韩一二三区| 亚洲国产精品尤物yw在线观看| 久久99久久99小草精品免视看| 成人性生交大合| 7799精品视频| 国产精品第一页第二页第三页| 亚洲大片在线观看| 懂色av中文字幕一区二区三区| 欧美性色综合网| 久久久噜噜噜久久中文字幕色伊伊| 日韩一区有码在线| 久久99国产精品麻豆| 91蜜桃在线观看| 久久免费视频一区| 三级久久三级久久久| 成人av在线网| 精品奇米国产一区二区三区| 一区二区在线免费观看| 国产精品资源在线看| 欧美日韩电影在线| 亚洲欧美日韩一区二区三区在线观看| 日韩激情视频网站| 91丨porny丨户外露出| www精品美女久久久tv| 午夜精品123| 欧美在线视频全部完| 国产精品视频免费看| 精品一区二区免费在线观看| 在线观看日韩电影| 综合激情网...| 国产91在线观看| 日韩欧美激情一区| 日韩精品三区四区| 欧美性淫爽ww久久久久无| 国产精品欧美一区二区三区| 精品无人区卡一卡二卡三乱码免费卡| 欧美亚洲日本国产| 一区二区三区毛片| 99精品久久免费看蜜臀剧情介绍| 欧美成人vps| 麻豆精品视频在线观看免费 | 欧美一区二区私人影院日本| 亚洲乱码国产乱码精品精小说| 国产精品一区在线观看乱码| 日韩欧美自拍偷拍| 日本一不卡视频| 91精品国产丝袜白色高跟鞋| 香蕉成人伊视频在线观看| 久久精品欧美日韩| 韩国精品主播一区二区在线观看| 欧美电影影音先锋| 日本欧美加勒比视频| 制服丝袜在线91| 日韩精品五月天| 日韩免费高清av| 国产一区二区三区精品视频| 日韩欧美自拍偷拍| 久久精品国产亚洲aⅴ| 日韩视频在线你懂得| 免费在线看成人av| 日韩免费看网站| 国产精品一区二区你懂的| 国产日韩欧美一区二区三区综合| 高清视频一区二区| 国产精品电影一区二区三区| 99久久夜色精品国产网站| 自拍偷拍亚洲激情| 精品视频123区在线观看| 午夜久久久久久| 欧美大尺度电影在线| 国产成人久久精品77777最新版本| 亚洲国产成人私人影院tom| 成人av电影观看| 洋洋成人永久网站入口| 欧美美女激情18p| 黑人精品欧美一区二区蜜桃 | 色欧美88888久久久久久影院| 亚洲制服丝袜一区| 日韩女优制服丝袜电影| 国产黄人亚洲片| 亚洲综合视频网| 欧美成人高清电影在线| 粉嫩高潮美女一区二区三区 | 亚洲午夜国产一区99re久久| 91麻豆精品国产自产在线观看一区| 蜜臀av在线播放一区二区三区| 久久久99久久精品欧美| 99精品久久只有精品| 日韩高清不卡一区二区| 国产亚洲精品bt天堂精选| 91豆麻精品91久久久久久|