2

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

怎么做?

4

3 回答 3

2

您可以使用此代码

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();
于 2012-03-21T11:01:16.627 回答
0

您可以使用FileFilter过滤掉.yaml文件。这篇文章给出了一个如何实现和使用的例子。

于 2012-03-21T10:43:06.823 回答
0

我觉得这个问题的措辞有点不清楚,但如果我理解正确,你想从给定的 jar 中提取所有具有 .yml 文件扩展名的文件。

如果是这种情况,您可以简单地从已知的 jar 文件路径实例化 java.util.JarFile 并使用getEntries()。此方法返回 JarEntries 的枚举,您可以对其进行迭代并验证它们的名称是否以“.yml”结尾。

于 2012-03-21T10:50:45.873 回答