Как я могу добавить номер строки в мой вывод и определить, не найден ли файл? - PullRequest
0 голосов
/ 14 марта 2020

У меня есть код, который должен получить имя пользователя от пользователя и вывести содержимое в нумерованном списке следующим образом: https://imgur.com/a/CGd86xU

Теперь я не могу быть в состоянии добавить 1. 2. 3., et c в мой вывод без жесткого кодирования или как я могу попытаться определить, не найден ли файл в том же каталоге, в котором находится файл кода, и сообщить пользователю такого файла не существует.

Пока что код, который я вывел, правильно выводит код, как показано в примере, но минус нумерация содержимого файлов или различие в том, существует ли файл, введенный пользователем.

import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.Scanner;
public class Q4 {
    public static void main(String[] args) throws IOException {
        try {

            Scanner scanner = new Scanner(System.in);
            System.out.print("Enter filename");
            String fileName = scanner.nextLine();
            File f = new File(fileName);
            BufferedReader b = new BufferedReader(new FileReader(f));
            String readLine = null;
            System.out.println("");  //Intended to be empty as to allow the next line. So far that's the only way to get this part it to work.

            while ((readLine = b.readLine()) != null) {
                System.out.println(readLine);
            }

        } catch (IOException e) {
            System.out.println(e.getMessage());
        }

    }
}

Примечание: я довольно плохо знаком с кодом, связанным с файлами, так что да ...

1 Ответ

0 голосов
/ 14 марта 2020

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

Если это так, тогда вы можете просто добавить переменную counter, когда Вы читаете файл построчно:

import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.Scanner;
public class Q4 {
    public static void main(String[] args) throws IOException {
        try {

            Scanner scanner = new Scanner(System.in);
            System.out.print("Enter filename");
            String fileName = scanner.nextLine();
            File f = new File(fileName);

            if (!f.exists()) { 
                System.out.println(fileName + " doesn't exist!");
                return;
            }

            BufferedReader b = new BufferedReader(new FileReader(f));
            String readLine = null;
            System.out.println("");  //Intended to be empty as to allow the next line. So far that's the only way to get this part it to work.

            int counter = 1;
            while ((readLine = b.readLine()) != null) {
                System.out.println(counter + ": " + readLine);
                counter++;
            }

        } catch (IOException e) {
            System.out.println(e.getMessage());
        }

    }
}

Я также добавил проверку, чтобы проверить, существует ли File с использованием метода File.exists().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...