2017-02-10 24 views
-3

Здравствуйте, я столкнулся с проблемой, которую я не могу найти. Я прошу пользователя ввести имя файла, но вывод, который я получаю, всегда «не может открыть файл». Любые советы будут высоко ценится.Сканер Java (System.in) не открывает файл после ввода пользователем

Scanner reader = new Scanner(System.in); 
    System.out.println("Enter the name of textfile to be read (add .txt): "); 

    String fileName = reader.next(); 
    String line = null; 
    BufferedReader bufferedReader = new BufferedReader(fileReader); 

    while((line = bufferedReader.readLine()) != null) { 
     System.out.println(line); 

     catch(FileNotFoundException ex) { 
     System.out.println(
      "Unable to open file '" + 
      fileName + "'");     
     } 

     catch(IOException ex) { 
     System.out.println(
      "Error reading file '" 
      + fileName + "'");     
     // Or we could just do this: 
     // ex.printStackTrace(); 
    } 
    } 

FileNotFoundException всегда выполняется, но почему?

P.S Если я изменяю путь к определенному месту, например, «C: \ etc», он считывает файл.

+0

* FileNotFoundException всегда выполняется, но почему? * - Поскольку файл не найден с указанным вами путем? – QBrute

+0

Я отредактирую свой вопрос в ближайшее время извините, если меня неправильно поняли. – Kristo

ответ

0

Если не указать абсолютный путь к файлу, то есть, C:/dir/..., Java будет выглядеть в том же каталоге, что и корень проекта (тот же каталог, что и ваши src и bin папки). Если файл есть, он найдет его только с именем файла или если вы создадите каталог в этой папке, вам понадобится этот каталог в пути. То же самое верно, если у вас есть исполняемый JAR, он будет выглядеть в том же каталоге, что и JAR.

0

Если вы указали только имя файла, а не путь, Java не знает, где искать. Если вы уверены, что файл будет находиться в каталоге проекта, просто добавьте C:/etc к пользовательскому вводу.

+1

да, мне нужно указать весь путь к файлу, например '' C: \\ и т. Д. ''. Спасибо.! – Kristo

 Смежные вопросы

  • Нет связанных вопросов^_^