java - 从 .jar 读取文本文件

标签 java eclipse file jar

我想向我的项目添加一个文本文件,并在 jar 文件和 eclipse 中读取它。我这样做的代码是这样的:

    InputStream fx = this.getClass().getResourceAsStream("PlayerStats.txt");
    Scanner scan = new Scanner(fx);

我已经这样做来加载 imageIcon 并且它工作正常,但是当我运行它时,它给我带来了这个错误:

"Exception in thread "main" java.lang.NullPointerException 
    at java.io.Reader.<init>(Reader.java:61)
    at java.io.InputStreamReader.<init>(InputStreamReader.java:55)
    at java.util.Scanner.<init>(Scanner.java:590)
    at Player.<init>(Player.java:16)
    at Main.main(Main.java:6)"

========================================================================

我的目录是这样的:

->项目
---->src(源代码)
-------->(默认包)
------------>...类列表...
---->资源(源文件夹)
-------->PlayerStats.txt
-------->...图像...

使用相同的方法图像可以正常工作:

ImageIcon image = new ImageIcon(this.getClass().getResource("bg.png"));

唯一的区别是我在不同的类中使用这些方法,但它们都在同一个源文件夹(“src”)中。

我该如何解决这个问题?

最佳答案

尝试使用这个

ClassLoader classLoader = getClass().getClassLoader();
File file = new File(classLoader.getResource(yourFileName).getFile());

如果不起作用,请将资源文件夹放入 src 文件夹中

关于java - 从 .jar 读取文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28619002/

相关文章:

java - 来自 CachedRowSet 的连接

java - 合并排序算法有问题

java - 添加蚁群优化作为单个数据中心中虚拟机之间的负载平衡策略

java - 从 Eclipse 打包和部署 Jython 程序

java - 对具有同一项目的不同版本的所有子目录运行 JUnit 测试

python - 查看 Python 3 中读取了多少 `file.read`

web-services - jax-rpc(jsr224) 和 jax-ws(jsr101) 有什么区别

c++ - eclipse 中使用 qt 插件的 qt gui 项目

python - 从 CSV 文件读取第二行到 Python

python - pickle.dump 在附加到文件时不转储任何内容