Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.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 从另一个包访问文件_Java_Package_Inputstreamreader - Fatal编程技术网

Java 从另一个包访问文件

Java 从另一个包访问文件,java,package,inputstreamreader,Java,Package,Inputstreamreader,我的情况如下:我有一个packaclassa包,在packB.resources中有一个file.txt文件。在classA中,我使用此文件访问file.txt: 但不幸的是,它向我展示了一个例外: java.io.FileNotFoundException:\packB\resources\file.txt 找不到指定的路径 使用类似下面的方法。注意,/用作包名称之前的前缀。假设您的类在packA中 InputStream stream = YourClass.class.getResourc

我的情况如下:我有一个packaclassa包,在packB.resources中有一个file.txt文件。在classA中,我使用此文件访问file.txt:

但不幸的是,它向我展示了一个例外:

java.io.FileNotFoundException:\packB\resources\file.txt 找不到指定的路径


使用类似下面的方法。注意,/用作包名称之前的前缀。假设您的类在packA中

InputStream stream = YourClass.class.getResourceAsStream("/packB/resources/file.txt");

使用类似下面的方法。注意,/用作包名称之前的前缀。假设您的类在packA中

InputStream stream = YourClass.class.getResourceAsStream("/packB/resources/file.txt");

FileInputStream类根据文件系统路径打开文件系统中的文件


但是您显然是想打开一个通过类路径定位的资源。您应该使用Class.getResourceAsStreamString。

FileInputStream类根据文件系统路径在文件系统中打开文件

但是您显然是想打开一个通过类路径定位的资源。您应该使用Class.getResourceAsStreamString。

如果您的file.txt与应用程序打包在一起,则根本不应该使用文件系统访问。应用程序可能打包到jar中,因此文件不在文件系统中。您应该将其作为资源访问:

InputStreamReader in = new InputStreamReader(getClass().getResourceAsStream("/packB/resources/file.txt"), "UTF-8"));
如果您的file.txt与应用程序打包在一起,则根本不应使用文件系统进行访问。应用程序可能打包到jar中,因此文件不在文件系统中。您应该将其作为资源访问:

InputStreamReader in = new InputStreamReader(getClass().getResourceAsStream("/packB/resources/file.txt"), "UTF-8"));

您应该从文件路径中删除尾随/并使用classA.class.getClassLoader.getResourceAsStreampackB/resources/file.txt。

您应该从文件路径中删除尾随/并使用classA.class.getClassLoader.getResourceAsStreampackB/resources/file.txt。

代码和错误消息不匹配。代码使用了资源,但错误消息称为resources。@hmjd:post-updated,谢谢。代码和错误消息不匹配。代码使用了资源,但错误消息显示为resources。@hmjd:post-updated,谢谢。