java File.separator在Windows上的文件路径中变为“%”

时间:2015-05-23 16:41:50

标签: java windows file

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

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

inputFilesFolder仍然正常(input_files/),但在创建文件file.getPath()后变为D:\blabla\input_files%filename

然后我尝试读取文件,但是我得到了一个FileNotFoundException(大惊喜)。 这有什么不对?

3 个答案:

答案 0 :(得分:3)

File.separator是一个文件系统的东西。当您使用classLoader.getResource()时,始终使用正斜杠,因为资源名称是一个' /' - 分隔的路径名。

See Javadoc for getResource()

答案 1 :(得分:1)

试试这个:

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

答案 2 :(得分:0)

如何

<p></p>