如果我有一个项目,里面有一个文本文件,并且我希望能够读取这个文本文件,该文件将存储在我的可运行 jar 中,那么我该怎么做?目前我有这样的设置
public void someMethod()
{
File f = new File("aFileInEclipseResourcesFolder.txt");
doSomethingWithFile(f);
}
private void doSomethingWithFile(File f)
{
//print the data in the file;
}
问题是,如果我使用这种方法,应用程序无法找到该文件,但如果我使用该文件的硬编码路径,那么它就可以工作。我知道你可以使用getClass().getResourceAsStream()
但这不允许我将已写入的文件放入文件对象中而无需再次重写,或者这个假设是否不正确?
问候
最佳答案
getResourceAsStream 提供了一个可以使用的InputStream,就像FileInputStream 一样。然后您可以使用:
InputStream is = getClass().getResourceAsStream("a/b/c/aFileInEclipseResourcesFolder.txt");
BufferedReader in = new BufferedReader(new InputStreamReader(is, "UTF-8")); // Or "Cp1252"?
...
关于java - 如何从可运行的 jar 加载文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8187372/