【发布时间】:2014-09-23 13:08:21
【问题描述】:
我运行以下代码,程序返回 FileNotFoundException:
public void read()
{
Scanner scanner = new Scanner(new File("/project_folder_name/data.in"));
while (scanner.hasNextLine())
{
System.out.println(scanner.nextLine());
}
}
我已尝试使用项目根文件夹、包文件夹和任意文件夹(即 /User/.../Desktop/data.in)中的 data.in 文件和我总是得到相同的结果:
例子:
//relative path (for when data.in is within project root folder)
Scanner scanner = new Scanner(new File("data.in"));
//path for when data.in is moved in package
Scanner scanner = new Scanner(
new File("/project_folder_name/source_folder_name/package_name/data.in"));
这些都不起作用。
我在 Eclipse IDE 中运行程序。
【问题讨论】:
-
如果你使用 windows 你应该使用 \ 而不是 /
-
在 Eclipse 中我相信我必须使用 / 否则它会返回错误:
Invalid escape sequence (valid ones are \b \t \n \f \r \" \' \\ ) -
是的,使用正斜杠 (/) 是正确的。即使在 Windows 中,Java 使用正斜杠作为文件分隔符来解析文件路径,并且使用反斜杠 () 作为转义字符,从而改变字符串的含义。
-
你应该用 \\ 转义 \
-
好吧,您可以转义反斜杠并将其用作文件分隔符,所以我想这是一个解决方案,但我觉得使用正斜杠更清晰、更通用,因为这确实有效在 Windows 和 Unix 上。
标签: java eclipse file file-io java.util.scanner