«Неверный синтаксис имени файла, имени каталога или метки тома» при открытии файла в java - PullRequest
0 голосов
/ 01 марта 2012

Я попытался ввести имена в кавычках и без кавычек, но он все еще обрабатывает только первый пробел.Даже если в пути нет пробелов, файл не обнаружен, но путь отображается правильно.Как это исправить?

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)

Это лучший способ получить файл ввода?Кроме того, я должен добавить throws 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 Ответ

3 голосов
/ 01 марта 2012

Сканер довольно ясно дает вам разделенные пробелами токены.Начиная с Scanner JavaDocs :

A Scanner разбивает входные данные на токены с помощью шаблона разделителя, который по умолчанию соответствует пробелу.* Так вот, у вас есть это.Ненавижу это говорить, но это случай RTFD.

Используйте другой разделитель или Scanner#nextLine() вместо Scanner#next().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...