Java 如何读取文件夹inputstream中的文件

Java 如何读取文件夹inputstream中的文件,java,axis2,java-io,Java,Axis2,Java Io,我有一个使用第三方库创建的Jar文件。 当我打包jar文件时,我在一个名为data data - file1.xml - file2.xml - file3.xml 现在,我想阅读jar文件中的文件夹,并根据第三方库的文档 我可以得到类加载器,然后像这样以inputstream的形式读取文件夹 ClassLoader clsLoader = myService.getClassLoader(); InputStream accountsStream = clsLoad

我有一个使用第三方库创建的Jar文件。 当我打包jar文件时,我在一个名为data

data
    - file1.xml
    - file2.xml
    - file3.xml
现在,我想阅读jar文件中的文件夹,并根据第三方库的文档 我可以得到类加载器,然后像这样以inputstream的形式读取文件夹

ClassLoader clsLoader = myService.getClassLoader();
InputStream accountsStream =  clsLoader.getResourceAsStream("data");
问题是,如何列出inputstream中的所有文件并逐个解析

谢谢

编辑 新增信息:

How do I access resources that I put into my service or module archive file?

抱歉,这个问题应该是针对ApacheAxis的,但是如果它也是一个Java特定的问题,我会有点困惑

在使用类加载器将inputstream发送到文件夹后,如何将所有文件列出到该文件夹中并逐个读取

我的代码中的步骤将包含在内

  • 将inputstream获取到文件夹中
  • 列出该输入流中的所有文件
  • 一个接一个地读
  • (抱歉-忽略我的答案-这里有一个更好的答案:)

    这是一个相当脆弱的解决方案,但您可以读取自己的jar文件:

    File file = new File(System.getProperty("user.dir") + "/jarname.jar");
    JarFile jfile = new JarFile(file);
    Enumeration e = jfile.entries();
    while (e.hasMoreElements()) {
       ZipEntry entry = (ZipEntry)e.nextElement();
       String path = entry.getName();
       if(path.startsWith("/path/within/jarfile/") && path.endsWith(".xml")) {
          MyClass.loadResourceAsStream(path);
       }
    }
    
    使它脆弱的是,它取决于您的jarfile具有特定的名称,而不是位于另一个jarfile中,等等。我相信有一种更优雅的方式

    当我打包jar文件时,我在一个名为data的文件夹中包含了几个xml文件

  • 同时还包括一个名为(例如)
    data/listOfXML.txt
    的列表
  • 获取列表作为资源
  • 阅读列表以获取XML文件的名称

  • 您正在使用的第三方库是什么,和/或您能提供的是指向其文档的链接?嗨,它的Apache Axis。当我打包我的服务时,我想让它访问模块存档中的文件夹。谢谢