⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fileentry.java

📁 GJC(Generic Java Compiler)编译器
💻 JAVA
字号:
/** * @(#)FileEntry.java	1.12 03/01/23 * * Copyright 2003 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */package com.sun.tools.javac.v8.util;import java.util.zip.*;import java.io.*;/** * A class that abstracts from the differences between Files and ZipEntries. */public abstract class FileEntry {    public FileEntry() {        super();    }    /**      * Same functionality as File.open().      */    public abstract InputStream open() throws IOException;            /**             * Same functionality as File.getName().             */            public abstract String getName();            /**             * Same functionality as File.getPath().             */            public abstract String getPath();            /**             * Same functionality as File.length().             */            public abstract long length();            /**             * Same functionality as File.toString().             */    public String toString() {        return getName();    }    /**      * An `undetermined' value for the `lastmod' modification date cache.      */    private static final int UNDET = -2;    /**     * A cache for the modification date returned by lastModified().     */    private long lastmod = UNDET;    /**     * To be defined in subclass; same functionality     *  as File.lastModified().     */    abstract long lastMod();    /**     * Same functionality as File.lastModified()     */    public long lastModified() {        if (lastmod == UNDET)            lastmod = lastMod();        return lastmod;    }    /**      * A subclass of FileEntry representing regular files.      */    public static class Regular extends FileEntry {        /**         * The file's name.         */        private String name;        /**         * The underlying file.         */        File f;        public Regular(String name, File f) {            super();            this.name = name;            this.f = f;        }        public InputStream open() throws IOException {            return new FileInputStream(f);        }        public String getName() {            return name;        }        public String getPath() {            return f.getPath();        }        public long length() {            return f.length();        }        long lastMod() {            return f.lastModified();        }    }    /**      * A subclass of FileEntry representing zip entries.      */    public static class Zipped extends FileEntry {        /**         * The entry's name.         */        private String name;        /**         * The zipfile containing the entry.         */        ZipFile zdir;        /**         * The underlying zip entry object.         */        ZipEntry entry;        public Zipped(String name, ZipFile zdir, ZipEntry entry) {            super();            this.name = name;            this.zdir = zdir;            this.entry = entry;        }        public InputStream open() throws IOException {            return zdir.getInputStream(entry);        }        public String getName() {            return name;        }        public String getPath() {            return zdir.getName() + "(" + entry.toString() + ")";        }        public long length() {            return entry.getSize();        }        long lastMod() {            return entry.getTime();        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -