Могу ли я использовать класс сканера в текстовом файле для получения информации?

StackOverflow https://stackoverflow.com/questions/1068988

Вопрос

этот код правильный??

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 в принципе довольно плох, когда дело доходит до кодировок.)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top