gpt4 book ai didi

java - 在 Java 中读取 jar 文件中的 Txt 文件

转载 作者:行者123 更新时间:2023-11-29 05:19:22 25 4
gpt4 key购买 nike

我已经编写了一个 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 文件的文件结构如下:

enter image description here enter image description here enter image description here enter image description here

最佳答案

您可以通过执行以下操作从 ClassPath 加载文件:

ClassLoader cl = getClass().getClassLoader()
cl.getResourceAsStream("TextFile.txt");

这也应该有效:

getClass().getResourceAsStream(fileName);

文件总是指向文件系统中的一个文件,所以我认为你将不得不处理一个流。

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com