java - 以编程方式从 jar 中查找具有特定扩展名的所有资源

标签 java resources jar yaml application-resource

我有一个函数,它获取某种类型的对象作为参数。我必须从该位置获取扩展名为 .yml 的所有资源文件。

怎么做?

最佳答案

您可以使用此代码

JarFile jarFile = new JarFile("my.jar");

    for(Enumeration<JarEntry> em = jarFile.entries(); em.hasMoreElements();) {  
        String s= em.nextElement().toString();

        if(s.startsWith(("path/to/resource/directory/"))){
            ZipEntry entry = jarFile.getEntry(s);

            String fileName = s.substring(s.lastIndexOf("/")+1, s.length());
            if(fileName.endsWith(".yml")){
                InputStream inStream= jarFile.getInputStream(entry);
                OutputStream out = new FileOutputStream(fileName);
                int c;
                while ((c = inStream.read()) != -1){
                    out.write(c);
                }
                inStream.close();
                out.close();

            }
        }
    }  
    jarFile.close();

关于java - 以编程方式从 jar 中查找具有特定扩展名的所有资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9802785/

相关文章:

c++ - Resource.rc 文件中返回多个资源

android - Eclipse Android 不会清理,不会刷新资源

java - 为什么不能在tomcat上使用jedis池释放jedis资源

java - 如何在 Heroku 上与 Node.js 应用程序并行运行 Java 11 .jar 文件?

java - 运行 jar 时出现运行时异常

java - 父构造函数调用的方法表现为子方法

java - 如何使用 RestAssured 将 "application/octet-stream"内容类型发布到 Rest API

java - Spring boot JPA - 延迟加载不适用于一对一映射

java - 我如何知道 Java 19 结构化并发 StructuredTaskScope 是否关闭(取消)?

java - 为 Android 项目创建自己的 jar 库时出错