Java 是否在EclipseJAR导出中包含文本文件?

Java 是否在EclipseJAR导出中包含文本文件?,java,eclipse,file,jar,Java,Eclipse,File,Jar,我正在使用FileInputStream读取文件对象。我的程序在EclipseIDE中运行时能够读取文本文件,但在作为JAR文件运行时则不能 InputStream is = new getClass().getResourceAsStream( "/text.txt"); 我将它导出为一个JAR文件,而不是一个可运行的JAR文件,我知道文本文件已经包含在JAR文件中,因为我提取了它以进行检查 InputStream is = new getCl

我正在使用FileInputStream读取文件对象。我的程序在EclipseIDE中运行时能够读取文本文件,但在作为JAR文件运行时则不能

InputStream is = new getClass().getResourceAsStream(
                        "/text.txt");
我将它导出为一个JAR文件,而不是一个可运行的JAR文件,我知道文本文件已经包含在JAR文件中,因为我提取了它以进行检查

InputStream is = new getClass().getResourceAsStream(
                        "/text.txt");
这就是我的文件结构的外观:
如何访问您的文件?您可能需要像./mytext.txt这样的相对文件路径

InputStream is = new getClass().getResourceAsStream(
                        "/text.txt");
使用此模式:

InputStream is = new getClass().getResourceAsStream(
                        "/text.txt");

测试以将文本文件包括在您想要访问该文件的类的包中。

您应该使用类似于:

InputStream is = new getClass().getResourceAsStream(
                        "/text.txt");
InputStream input = getClass().getResourceAsStream("/learnaboutfonts.txt");

请注意,诀窍在于正确使用前导/后导。如果不放置前导/,则它会在其调用的类的包中搜索该文件。

我建议您将learnaboutonts.txt放在src folder中,而不是放在包中,并读取源代码中的文件,如下所示:

InputStream is = new getClass().getResourceAsStream(
                        "/text.txt");
Resource resource = new ClassPathXmlApplicationContext().getResource("classpath:learnaboutfonts.txt");
InputStream is = resource.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));

您可以根据需要使用br。愉快的编码。

您如何尝试访问您的文件?如果您试图从文件系统中读取它,它在jar中找不到它。可能会有帮助我在一个源文件中以流的形式访问我的文件:new FileInputStreamnew file./learnaboutonts.txt可能是个好主意。但是,它给输入赋值为空值,有什么原因吗?为了使上述代码正常工作,文件learnaboutonts应该位于jar的根目录中。是吗?你的答案是正确的。实际上,文本文件应该在源文件夹中,而不是根文件夹中,我很抱歉+1:这个不行。我得到的是一个空值。为此使用新对象并不好笑。我从静态上下文复制了它。是的,最好直接使用getClass:。不要忘记在构建路径spring-context-3.2.0.RELEASE.jar中添加spring上下文jar。
InputStream is = new getClass().getResourceAsStream(
                        "/text.txt");