我已经研究过许多与我的类似的其他问题,但不幸的是,到目前为止,他们的答案都不起作用。
我有一个如下所示的 Java 项目:
MyProject/ src/ abc/ MyClass.java xyz/ file1.txt file2.txt ...
Essentially, I'm trying to read all of the txt files above in MyClass.java
. This is what I'm currently doing:
File dir = new File("src/xyz/");
for (File child : dir.listFiles()) {
...
}
这工作正常,直到我将所有内容都放入 JAR 格式,此时 dir.listFiles()
返回 null
并且上述内容不再有效。即使这些 txt 文件被打包到 JAR 中,我仍然可以读取它们吗?另外,如果有什么不同的话,我正在使用 Eclipse。
最佳答案
您可以通过类加载器访问类路径上的文件。
getClass().getResourceAsStream("/xyz/file1.txt");
然后您将像往常一样使用InputStream
。请注意,我使用绝对路径,但相对于当前包也可以。
从 Java 6 开始,还可以很容易地列出包下的所有资源:
Enumeration urls = getClass().getClassLoader().getResources("xyz");
urls.nextElement().openStream();
关于java - 读取jar内的txt文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14445180/