я не следующий код:Java FileReader FileNotFound проблема при чтении в строке
BufferedReader inFromUser =
new BufferedReader(new InputStreamReader(System.in));
System.out.print("Enter: ");
String m = inFromUser.readLine();
BufferedReader br = new BufferedReader(new FileReader(m));
String text;
while((text = br.readLine()) != null){
System.out.println(text);
}
br.close();
И при чтении строки от пользователя файл может и не найти. Я не знаю, что происходит, когда строка передается, но она становится неоправданной. Хотя файл там очень много.
У меня есть тесты, и когда я заменяю newFileReader (m) на newFileReader («Lab3/test»), файл найден, но когда я вхожу в «Lab3/test» в систему (через строку m = inFromUser.readLine();), чтобы прочитать его, он считывается и печатается как «Lab3/test», но программа чтения файлов никогда не находит файл, когда строка передается в считыватель файлов (Via m), когда строка является точной одна и та же.
Я немного искал Google, но пытался объяснить, что это боль.
благодарственное заранее, Сэм
Для целей отладки попробуйте эту строку 'String m = inFromUser.readLine(); Файл f = новый Файл (m); System.out.prinln (f.getAbsolutePath() + "exists:" + f.exists()); ..' –
Я просто попытался добавить файл f = new File (m); OK При вводе строки новый файл (m) отлично работает. Он выбирает файл и я добавил, что вы предложили и получили: «Введите: "Lab3/тест" C: \ Users \ Смитерс \ Dropbox \ Software Engineering Code \ Затмение \ Сеть \ "Lab3 \ тест" существует : false " Но еще раз, если я передаю f в буферный читатель, он все еще говорит, что файл не найден, что, безусловно, противоречиво? –
'new File (m)' всегда будет работать, независимо от того, существует файл или нет. Вопрос в том, что возвращает 'new File (m) .exists()' return. Если он 'exists()' возвращает 'false', как это было в вашем случае, тогда файл не существует. –