Прочитать одну строку из текстового файла, а не весь файл (используя буферизованную программу чтения) - PullRequest
0 голосов
/ 21 марта 2020

Я пытаюсь написать фрагмент кода, который читает одну строку текста из текстового файла в java с использованием буферизованного считывателя. Например, код выведет одну строку из текстового файла, а затем вы напечатаете то, что он говорит, а затем выведет следующую строку и т. Д.

Мой код пока:

public class JavaApplication6 {

    public static String scannedrap;
    public static String scannedrapper;

    public static void main(String[] args) throws FileNotFoundException, IOException {
        File Tunes;
        Tunes = new File("E:\\NEA/90sTunes.txt");

        System.out.println("Ready? Y/N");
        Scanner SnD;
        SnD = new Scanner(System.in);
        String QnA = SnD.nextLine();

        if (QnA.equals("y") || QnA.equals("Y")) {

            System.out.println("ok, starting game...\n");
            try {

                File f = new File("E:\\NEA/90sTunes.txt");

                BufferedReader b = new BufferedReader(new FileReader(f));

                String readLine = "";

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

            } catch (IOException e) {
            }
        }
    }
}

Он выводит:

Ready? Y/N
y
ok, starting game...
(and then the whole text file)

Но я sh достигну чего-то вроде этого:

Ready? Y/N 
y
ok, starting game...
(first line of file outputted)
please enter (the line outputted)

и затем повторите это, пройдя каждую строку в текстовом файле пока он не достигнет конца текстового файла (где он выведет что-то вроде «игра завершена») ...

Ответы [ 2 ]

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

Это будет читать первую строку ".get (0)".

String line0 = Files.readAllLines(Paths.get("enter_file_name.txt")).get(0);
0 голосов
/ 21 марта 2020

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

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

Рассмотрите возможность добавления оператора в тело l oop, которое запрашивает некоторый ввод от пользователя как вы делали выше, когда спрашивали, готовы ли они (вам нужно добавить только одну строку кода в l oop, как в строке, присваивающей значение QnA)

...