栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用InputStreamReader读取JAR中的目录

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用InputStreamReader读取JAR中的目录

如果不先枚举Jar文件的内容,就无法简单地获取内部资源的过滤列表。

幸运的是,这实际上并不难(对我来说幸运的是,您已经完成了大部分工作)。

基本上,一旦有了对的引用

JarFile
,您只需要询问它
entries
并在该列表上进行迭代即可。

通过检查

JarEntry
所需匹配项的名称(即
resources
),您可以过滤所需的元素…

例如…

import java.io.File;import java.io.IOException;import java.util.Enumeration;import java.util.jar.JarEntry;import java.util.jar.JarFile;public class ReadMyResources {    public static void main(String[] args) {        new ReadMyResources();    }    public ReadMyResources() {        JarFile jf = null;        try {  String s = new File(this.getClass().getResource("").getPath()).getParent().replaceAll("(!|file:\\)", ""); jf = new JarFile(s); Enumeration<JarEntry> entries = jf.entries(); while (entries.hasMoreElements()) {     JarEntry je = entries.nextElement();     if (je.getName().startsWith("resources")) {         System.out.println(je.getName());     } }        } catch (IOException ex) { ex.printStackTrace();        } finally { try {     jf.close(); } catch (Exception e) { }        }    }}

警告

这种类型的问题实际上有点问。与其尝试在运行时读取Jar的内容,不如生成某种包含可用资源列表的文本文件,这会更好。

这可以由您的构建过程在创建Jar文件之前动态产生。然后(

getClass().getResource()
例如,通过)读取该文件,然后在文本文件中查找每个资源列表,这将是一个简单得多的解决方案…恕我直言



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/496976.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号