Использование сканера для запроса имени файла JAVA

#java

#java

Вопрос:

Я пытаюсь открыть файл, имя которого записано в консоль. Кажется, я не могу устранить несоответствие типов. Буду признателен за любую помощь.

 Scanner inputFileName = new Scanner(System.in);
File file = new File (inputFileName);
  

Комментарии:

1. Вы должны фактически получить пользовательский ввод… вы не можете просто передать сканер конструктору File

2. docs.oracle.com/javase/7/docs/api/java/util/Scanner.html

3. Вы пытаетесь создать файловый объект с помощью объекта Scanner. Используйте inputFileName.nextLine(), чтобы получить ввод с клавиатуры. Этот метод вернет строку, которую вы можете передать файловому конструктору. Например. String fileName = inputFileName.nextLine(); File файл = новый файл (fileName);

Ответ №1:

Используйте что-то вроде этого: String name = inputFileName.nextLine() . Итак, при вызове nextLine() вы читаете остальную часть этой первой строки.

В вашем коде вы не получаете никаких входных данных от пользователя.

Более подробную информацию об их реализации вы найдете в документации API для java.util.Сканер

Ответ №2:

В вашем случае your inputFileName — это всего лишь Scanner объект, который вы можете использовать для запроса пользовательского ввода. Это не ваше имя файла и в данный момент оно не запрашивает никаких входных данных.

Вы можете использовать inputFileName.nextLine() , чтобы сначала запросить у пользователя ввод:

 Scanner inputFileName = new Scanner(System.in);  //Create Scanner object 
String fileName = inputFileName.nextLine();      //Store user's input in fileName
File file = new File (fileName);                 //Create File object with fileName