Могу ли я использовать класс сканера в текстовом файле для получения информации?
-
21-08-2019 - |
Вопрос
этот код правильный??
String note = "text.txt";
FileWriter file = new FileWriter(note);
Scanner sc = new Scanner(System.in);
System.out.println("Enter your name:");
String name = sc.next();
file.close();
Как я могу передать этот файл программе в качестве аргумента командной строки???
Решение
Ну, лично я бы никогда не стал использовать FileWriter
поскольку он использует системную кодировку по умолчанию, что в большинстве случаев неприятно делать.Я предпочитаю FileOutputStream
+ OutputStreamWriter
.Однако, сказав это...
Что вы хотите передать в качестве аргумента командной строки?Файл Имя?Это просто:
public static void main(String[] args)
{
// Insert error checking here (e.g. args.length == 0)
String note = args[0]; // For the first argument
// Rest of code here
}
Если это нет что вы имеете в виду, пожалуйста, отредактируйте свой вопрос, чтобы прояснить его.
Судя по названию, возможно, вы хотите нагрузка из файла, а не из System.in
.В этом случае вам просто нужно передать в File
объект, или InputStream
(например, FileInputStream
) или действительно Readable
(например, InputStreamReader
).Если вы собираетесь пройти в File
или InputStream
, Я бы настоятельно рекомендовал вам также ввести имя в кодировке символов.(Вполне понятно, почему он принимает это как строку, а не как Charset
это выше моего понимания, но Java API в принципе довольно плох, когда дело доходит до кодировок.)