java - 如何从可运行的 jar 加载文本文件

标签 java eclipse file-io

如果我有一个项目,里面有一个文本文件,并且我希望能够读取这个文本文件,该文件将存储在我的可运行 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/

相关文章:

java - 使用子对象列表更新主对象列表

java - 嵌套公共(public)接口(interface)完全可以接受吗?

java - 在 Eclipse Luna 调试器中请求参数值

java - Eclipse 中不需要的死代码警告

C 编程文件 I/O

java - Thread.setDefaultUncaughtExceptionHandler 中的应用程序崩溃

java - 处理生成 Excel 或 PDF 文件作为响应的 REST API 中的异常的正确方法是什么?

java - LWJGL 操作 != 对于 boolean、int 类型未定义

c - 为什么在进程退出时数据没有被刷新到文件?

java - 用户输入文件控制台/命令行 - Java