如何从尚未加载到内存的jar中读取属性文件?

时间:2013-02-26 02:00:54

标签: java properties jar zip

我想动态加载一个jar文件但是在加载之前我想在它的根目录中读取一个属性文件。有没有办法从jar中读取属性文件而不加载jar?

我尝试了这个,但后来意识到这是我在装载jar后所做的事情。

    InputStream inputStream = this.getClass().getClassLoader()
            .getResourceAsStream("jdscfg.properties");

我是否需要将文件视为zip并提取文件?

1 个答案:

答案 0 :(得分:0)

这是我的解决方案

public static InputStream getInputStreamFromZip(File f, String fileEntry) {
    try {
        ZipFile zf = new ZipFile(f);
        Enumeration entries = zf.entries();
        while (entries.hasMoreElements()) {
            ZipEntry ze = (ZipEntry) entries.nextElement();
            System.out.println("Read " + ze.getName() + "?");
            if (ze.getName().equalsIgnoreCase(fileEntry)) {
                return zf.getInputStream(ze);
            }
        }
    } catch (IOException e) {
        System.err.println("io error accessing zip file");
    }
    return null;
}