Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.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 File.separator变为“分隔符”&引用;在Windows上的文件路径中_Java_Windows_File - Fatal编程技术网

java File.separator变为“分隔符”&引用;在Windows上的文件路径中

java File.separator变为“分隔符”&引用;在Windows上的文件路径中,java,windows,file,Java,Windows,File,我尝试从资源文件夹中读取文件。问题是,文件.separator在Windows上变成了“%” String inputFilesFolder = "input_files" + File.separator; File file = new File(classLoader.getResource(inputFilesFolder + "filename").getFile()); inputfiles文件夹仍然很好(inputfiles/),但是在创建文件后,file.getPath()变为

我尝试从资源文件夹中读取文件。问题是,
文件.separator
在Windows上变成了“
%”

String inputFilesFolder = "input_files" + File.separator;
File file = new File(classLoader.getResource(inputFilesFolder + "filename").getFile());
inputfiles文件夹
仍然很好(
inputfiles/
),但是在创建文件后,
file.getPath()
变为
D:\blablabla\inputfiles%filename

然后我尝试读取该文件,但我得到一个FileNotFoundException(大惊喜)。 这里怎么了?

试试这个:

File file = new File(classLoader.getResource(inputFilesFolder + filename).toURI());
试试这个:

File file = new File(classLoader.getResource(inputFilesFolder + filename).toURI());
怎么样

 String inputFilesFolder = "input_files" + File.separator;
 File file = new File(classLoader.getResource(inputFilesFolder + filename).toString());
怎么样

 String inputFilesFolder = "input_files" + File.separator;
 File file = new File(classLoader.getResource(inputFilesFolder + filename).toString());

File.separator是一个文件系统。使用classLoader.getResource()时,请始终使用正斜杠,因为资源的名称是由“/”分隔的路径名


File.separator是一个文件系统。使用classLoader.getResource()时,请始终使用正斜杠,因为资源的名称是由“/”分隔的路径名


请按照您实际拥有的方式修复代码。请按照您实际拥有的方式修复代码。您不能将资源作为文件从包中加载:)我不知道您的意思。。。但是是的,这是可能的,是吗?因此,您还可以列出应用程序包中的文件,或者在文件被分解时修改它们?@krzysztofcichochoki① 是的。② 没有。:)您不能从包中加载资源作为文件:)我不知道您的意思。。。但是是的,这是可能的,是吗?因此,您还可以列出应用程序包中的文件,或者在文件被分解时修改它们?@krzysztofcichochoki① 是的。② 没有。:)getResource()返回一个URL,而文件没有接受它的构造函数。@vargen_uuu使用toString()以便文件将使用File(String)constructorgetResource()返回一个URL,而File没有接受它的构造函数。@vargen_uuuuu使用toString()以便文件将使用File(String)constructorGood提示。或者像我的教授常说的那样:“使用源代码”是一个很好的暗示。或者就像我的教授常说的:“使用源代码”