我已经编写了一个 Java 程序并以通常的方式将其打包在一个 jar 文件中 - 不幸的是需要在一个 txt 文件中读取。这就是程序无法在其他计算机上启动的原因,因为它找不到 txt 文件。
同时,我在我的程序中使用了很多图像,但这里没有这样的问题:我将图像“复制”到 eclipse 主目录,以便将它们打包在 jar 文件中,并可以通过以下命令使用:
BufferedImage buffImage=ImageIO.read(ClassName.class.getClassLoader()
.getResourceAsStream("your/class/pathName/));
简单的文本文件有类似的东西,然后可以用作普通的 new File()
?
编辑
我尝试用这个解决方案解决我的问题:
package footballQuestioner;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import javax.security.auth.login.Configuration;
public class attempter {
public static void main(String[] args) {
example ex = new example();
}
}
class example {
public example() {
String line = null;
BufferedReader buff = new BufferedReader(new InputStreamReader(
Configuration.class
.getResourceAsStream("footballQuestioner/BackUpFile")));
do {
try {
line = buff.readLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} while (line != null);
}
}
但它总是给出 NullPointerException...我是不是忘记了什么?
根据需要,我的 jar 文件的文件结构如下:
最佳答案
您可以通过执行以下操作从 ClassPath 加载文件:
ClassLoader cl = getClass().getClassLoader()
cl.getResourceAsStream("TextFile.txt");
这也应该有效:
getClass().getResourceAsStream(fileName);
文件总是指向文件系统中的一个文件,所以我认为你将不得不处理一个流。
关于java - 在 Java 中读取 jar 文件中的 Txt 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25412960/