Консоль входного файла пользователя/Командная строка - Java
Большинство примеров в Интернете для ввода файла в Java относятся к фиксированному пути:
File file = new File("myfile.txt");
Как насчет входного файла пользователя с консоли? Скажем, я хочу, чтобы пользователь вводил файл:
System.out.println("Enter a file to read: ");
Какие параметры у меня есть (используя как можно меньше кода) для чтения в указанном пользователем файле для обработки. Как только у меня есть файл, я могу преобразовать его в строку и т.д. Я думаю, что это связано с BufferedReader, Scanner, FileInputStream, DataInputStream и т.д. Я просто не уверен, как использовать их в сочетании с получить наиболее эффективный метод.
Я новичок, поэтому я мог бы легко пропустить что-то простое. Но я уже давно напугался этим, но безрезультатно.
Спасибо заранее.
Ответы
Ответ 1
Чтобы пользователь вводил имя файла, существует несколько возможностей:
Как аргумент командной строки.
public static void main(String[] args) {
if (0 < args.length) {
String filename = args[0];
File file = new File(filename);
}
}
Попросив пользователя ввести его:
Scanner scanner = new Scanner(System.in);
System.out.print("Enter a file name: ");
System.out.flush();
String filename = scanner.nextLine();
File file = new File(filename);
Ответ 2
Используйте java.io.BufferedReader
String readLine = "";
try {
BufferedReader br = new BufferedReader(new FileReader( <the filename> ));
while ((readLine = br.readLine()) != null) {
System.out.println(readLine);
} // end while
} // end try
catch (IOException e) {
System.err.println("Error Happened: " + e);
}
И заполните цикл while обработкой данных.
С уважением,
Stéphane