Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java jar文件找不到正确的文件_Java_File_Text_Jar_Executable Jar - Fatal编程技术网

Java jar文件找不到正确的文件

Java jar文件找不到正确的文件,java,file,text,jar,executable-jar,Java,File,Text,Jar,Executable Jar,在过去的三个晚上里,我一直在疯狂地寻找答案。 所以我有一个java程序,我希望它是jar格式的,我希望它能够读取文本和图像文件。 我使用this.getClass.getResource(“”方法使图像文件工作正常,但是我无法让程序正确访问.jar中的文本文件,当我提取jar时,文本文件在那里,因此我知道文本文件不在jar中不是一个简单的错误 这是我尝试使用的,但它不起作用(它在没有罐子的情况下可以工作,但现在在罐子内) 修复?假设您的类是 my.package.MyClass 该方法将从JA

在过去的三个晚上里,我一直在疯狂地寻找答案。 所以我有一个java程序,我希望它是jar格式的,我希望它能够读取文本和图像文件。
我使用
this.getClass.getResource(“”
方法使图像文件工作正常,但是我无法让程序正确访问.jar中的文本文件,当我提取jar时,文本文件在那里,因此我知道文本文件不在jar中不是一个简单的错误

这是我尝试使用的,但它不起作用(它在没有罐子的情况下可以工作,但现在在罐子内)

修复?

假设您的类是

my.package.MyClass
该方法将从JAR的目录
/my/package
中读取文件

您可以通过以下方式打开资源:

BufferedReader in3 = new BufferedReader(new InputStreamReader(
this.getClass().getResourceAsStream("list.txt")));

您认为stacktrace错误是什么?您必须将资源视为一个InputStream,而不仅仅是可以使用FileReader打开的另一个文件。不确定您的意思,您正在谈论此方法吗?这个.getClass().getResourceAsStream(“文件名”);是的,使用getResourceAsStreambut FileReader没有inputstreamOk的构造函数非常感谢,我现在已经可以使用了,但我现在唯一的问题是,我无法将此代码应用到程序中的其他部分,因为它只将其作为inputstream引入,我将如何处理输出流?BufferedWriter out2=new BufferedWriter(new OutputStreamWriter(this.getClass().getResourceAsStream(“list.txt”);out2.write(a1.getText());out2.close();您不能以这种方式写入jar。您可以尝试将其作为zip打开,但尝试修改ClassLoader加载的jar可能会导致不可预知的行为(假设操作系统允许这种操作)。
BufferedReader in3 = new BufferedReader(new InputStreamReader(
this.getClass().getResourceAsStream("list.txt")));