当前位置: 首页 > 面试题库 >

如何遍历Java类资源?

荣声
2023-03-14
问题内容

我知道我们可以做这样的事情:

Class.class.getResourceAsStream("/com/youcompany/yourapp/module/someresource.conf")

读取打包在我们jar文件中的文件。

我已经用谷歌搜索了很多,我肯定没有使用适当的术语;我要做的是列出可用资源,如下所示:

Class.class.listResources("/com/yourcompany/yourapp")

那应该返回包内的资源列表 com.yourcompany.yourapp.*

那可能吗?关于如何做的任何想法,以防无法像我展示的那样容易地完成?

注意:我知道有可能知​​道您的罐子在哪里,然后将其打开并检查其内容以达到目的。但是,我无法在现在工作的环境中做到这一点。


问题答案:

对于JAR文件中的资源,类似以下内容:

URL url = MyClass.class.getResource("MyClass.class");
String scheme = url.getProtocol();
if (!"jar".equals(scheme))
  throw new IllegalArgumentException("Unsupported scheme: " + scheme);
JarURLConnection con = (JarURLConnection) url.openConnection();
JarFile archive = con.getJarFile();
/* Search for the entries you care about. */
Enumeration<JarEntry> entries = archive.entries();
while (entries.hasMoreElements()) {
  JarEntry entry = entries.nextElement();
  if (entry.getName().startsWith("com/y/app/")) {
    ...
  }
}

您可以使用文件系统或许多其他存储库中“爆炸”的资源来执行相同的操作,但这并不那么容易。您需要为每个要支持的URL方案指定特定的代码。



 类似资料:
  • 问题内容: 我使用了一个JSON库(如果需要,我不介意进行切换)。 我知道如何进行迭代,但是当我从解析数据时,我没有得到一个数组,只有一个,但是我需要能够通过其索引访问一个项目,例如获取第一个,而我无法弄清楚该怎么做。 问题答案: 也许这会有所帮助:

  • 问题内容: 我有一个Map如下所示的bean: 这ftqSet适合以下数据结构: 在我的测试JSP文件中,我一直在尝试使用来访问数据 : 但是它没有输出${f.feedId}。为什么会这样呢?我将如何访问该结构的各个元素,以便创建一个漂亮的表? 问题答案: 的每次迭代中给出了一个实例,它反过来又和getValue()方法。这与在普通Java中进行操作类似。 例如 在的情况下, 的回报, ,所以你需

  • 本文向大家介绍Java 如何遍历JsonObject对象,包括了Java 如何遍历JsonObject对象的使用技巧和注意事项,需要的朋友参考一下 方法: 代码示例: 补充:java生成json格式数据 和 java遍历json格式数据 java 生成json 格式的数据,在需要加入一个创建json的jar包,这个网上有好多,我使用的是org.json的jar包。 通过运行上面的代码就能生成我们想

  • 问题内容: 我想遍历,对于所有具有特定值的键,我希望将它们添加到new 。我怎样才能做到这一点? 问题答案: 假设类型TreeMap : (键和值类型当然可以是任何类)

  • 问题内容: 不会按优先级顺序进行迭代。 这可以工作,但可以清空队列。 问题答案: 从Javadocs 方法中提供的Iterator 不能保证以任何特定顺序遍历PriorityQueue的元素。如果您需要有序遍历,请考虑使用。 可能还有其他等效的机制。

  • 问题内容: 我创建了这样的一系列用户- 我已经为此添加了对象,并且我想遍历该数组中的每个用户。我知道这在使用ng-repeat的视图中是可能的,但是我需要在控制器中做到这一点。我努力了 - 但是我没有得到任何结果。 问题答案: 届时用户可能尚未加载,因此您需要等待: 这是上面的文档:https : //www.firebase.com/docs/web/libraries/angular/guid