【发布时间】:2017-05-21 20:23:31
【问题描述】:
我有一个 Java 程序提示用户输入文件路径和名称,程序将从该文件中读取:
Scanner inScanner = new Scanner(System.in);
inScanner.useDelimiter("\n");
System.out.print("Enter input file path and name:");
String inFile = inScanner.next();
System.out.println("You entered: " + inFile);
FileInputStream fs = new FileInputStream(inFile); // FAILED HERE
当我在 Eclipse 中运行这个程序时,我得到了“语法不正确”的错误:
Enter input file path and name: C:\\Users\\My Work\\myFile.txt
You entered: C:\\Users\\My Work\\myFile.txt
(The filename, directory name, or volume label syntax is incorrect)rks\myFile.txt
但如果我在同一个 java 程序中给出硬编码的相同路径并从这个硬编码值创建 FileInputStream,它工作得很好:
private static final String inFile = "C:\\Users\\My Work\\myFile.txt";
那么我如何从 Eclipse 的输入中给出这条路径呢?是因为我在路径中有空间吗?我尝试在输入文件路径周围使用双引号,或者在文件路径中使用单个\或单个/,它给了我同样的错误。谢谢。
【问题讨论】:
-
您可能必须将路径视为用双引号括起来的字符串。也许尝试 "\"C:\\Users\\My Work\\myFile.txt\"" 因为我看到命令提示符的方式会处理目录名称中包含空格的任何路径
-
刚试过。还是不行。
-
您 100% 确定您有一个名为“我的工作”的用户?因为这对用户来说似乎是一个非常奇怪的名字。您可以使用该确切路径导航到 cmd/终端中的文件吗?
-
@RAZ_Muh_Taz FileInputStream 只是将一个字符串作为参数,而另一个双引号内没有这样的字符串