#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