Аргументы командной строки - PullRequest
0 голосов
/ 19 октября 2018

Я делал некоторые упражнения из своей учебной книги, и я не могу понять, что это за конкретная книга.Инструкции: повторите упражнение P7.2, но разрешите пользователю указать имя файла в командной строке.Если пользователь не указывает никакого имени файла, то запросит у него имя.

Ín P7.2, который я выполнил, мы должны были написать программу, которая читает файл, содержащий текст, читатькаждой строке и отправьте ее в выходной файл, которому предшествуют номера строк.По сути, мне интересно, что именно я должен делать?

Это мой код прямо сейчас:

public static void main(String[] args) {


    Scanner input = new Scanner(System.in);
    System.out.print("Enter name of file for reading: ");
    String fileNameReading = input.next(); 
    System.out.print("Enter name of file for writing: ");
    String fileNameWriting = input.next(); om
    input.close();

    File fileReading = new File(fileNameReading); 

    Scanner in = null; 
    File fileWriting = new File(fileNameWriting);

    PrintWriter out = null; 

    try {
        in = new Scanner(fileReading); 
        out = new PrintWriter(fileWriting); fileWriting
    } catch (FileNotFoundException e1) {
        System.out.println("Files are not found!");
    }

    int lineNumber = 1;
    while (in.hasNextLine()) {
        String line = in.nextLine();
        out.write(String.format("/* %d */ %s%n", lineNumber, line));
        lineNumber++;
    }

    out.close();
    in.close();

    System.out.println();
    System.out.println("Filen was read and re-written!");
}

1 Ответ

0 голосов
/ 19 октября 2018

Я думаю, что ваше упражнение просто требует небольшого рефакторинга, чтобы использовать аргументы командной строки для указания файла для чтения:

public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    String fileNameReading;
    // check if input file were passed as a parameter
    if (args != null && args.length > 0) {
        fileNameReading = args[0];
    }
    // if not, then prompt the user for the input filename
    else {
        System.out.print("Enter name of file for reading: ");
        fileNameReading = input.next();
    }
    System.out.print("Enter name of file for writing: ");
    String fileNameWriting = input.next();

    // rest of your code as is
}

Вы могли бы запустить свой код, например, как:

java YourClass input.txt

Здесь мы передаем имя входного файла в качестве параметра.

...