加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 如何读取文件夹inputstream中的文件

发布时间:2020-12-14 19:17:30 所属栏目:Java 来源:网络整理
导读:我有一个Jar文件,我使用第三方库创建. 当我打包jar文件时,我将几个xml文件包含在名为data的文件夹中 data - file1.xml - file2.xml - file3.xml 现在,我想阅读jar文件中的文件夹,并根据第三方库的文档 我可以得到类加载器并像这样读取文件夹作为输入流. Clas

我有一个Jar文件,我使用第三方库创建.
当我打包jar文件时,我将几个xml文件包含在名为data的文件夹中

data
    - file1.xml
    - file2.xml
    - file3.xml

现在,我想阅读jar文件中的文件夹,并根据第三方库的文档
我可以得到类加载器并像这样读取文件夹作为输入流.

ClassLoader clsLoader = myService.getClassLoader();
InputStream accountsStream =  clsLoader.getResourceAsStream("data");

问题是,如何列出输入流中的所有文件并逐个解析?

谢谢

编辑
添加信息:

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

http://axis.apache.org/axis2/java/core/faq.html#b1

对不起,这个问题应该是针对Apache Axis的,但如果它也是一个特定于Java的问题,我会感到困惑.

使用类加载器获取文件夹的输入流后,如何将所有文件列入该文件夹并逐个读取?

我的代码中的步骤将包括在内.

>获取输入流到文件夹中
>列出该输入流中的所有文件
>逐一阅读

最佳答案
(抱歉 – 忽略我的回答 – 这里更好:)

How do I list the files inside a JAR file?

这是一个相当脆弱的解决方案,但您可以只读取自己的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);
   }
}

让它变得脆弱的是它依赖于你的jar文件具有特定的名称,而不是在另一个jar文件中,依此类推.我相信有更优雅的方式……

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读