我有一个函数,它获取某种类型的对象作为参数。我必须从该位置获取所有扩展名为.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/

10-09 00:31