在java中打开文件时,“文件名,目录名称或卷标语法不正确”

时间:2012-03-01 02:53:00

标签: java io

我尝试输入引用和不引用的文件名,但它仍然只处理第一个空格。即使路径中没有空格,也不会检测到文件,但会正确显示路径。如何解决?

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();

1 个答案:

答案 0 :(得分:3)

扫描仪很清楚地为您提供了以空格分隔的标记。来自the Scanner JavaDocs

  

Scanner使用分隔符模式将其输入分解为标记,该分隔符模式默认匹配空格。

所以你有它。我不想这么说,但这是一个RTFD案例。

使用其他分隔符,或使用Scanner#nextLine()代替Scanner#next()