我尝试输入引用和不引用的文件名,但它仍然只处理第一个空格。即使路径中没有空格,也不会检测到文件,但会正确显示路径。如何解决?
Enter the filename: a b c
java.io.FileNotFoundException: a (The system cannot find the file specified)
Enter the filename: "a b c "
java.io.FileNotFoundException: "a (The system cannot find the file specified)
这是获取文件输入的最佳方式吗? 另外,我应该向主要添加抛出IOException,FileNotFoundException还是使用try {}?
System.out.print("Enter the filename: ");
Scanner stdin = new Scanner((System.in)); //Keyboard input
String nextDataValue, data, popped="", tag="", fileName=stdin.next();
FileInputStream fis = null;
try {
fis = new FileInputStream(fileName);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
InputStreamReader inStream = new InputStreamReader(fis);
BufferedReader in = new BufferedReader(inStream);
data=in.readLine();
答案 0 :(得分:3)
扫描仪很清楚地为您提供了以空格分隔的标记。来自the Scanner
JavaDocs:
Scanner
使用分隔符模式将其输入分解为标记,该分隔符模式默认匹配空格。
所以你有它。我不想这么说,但这是一个RTFD案例。
使用其他分隔符,或使用Scanner#nextLine()
代替Scanner#next()
。