Как прочитать определенные строки текстового файла в java? - PullRequest
0 голосов
/ 15 апреля 2020

Я хочу читать только те части, которые мне нужны. Например, мой текстовый файл выглядит так:

Name     Age   Gender
=====================
Donald    13    Male
John      14    Non-binary
Pooh      42    Female

Я только хочу прочитать данные, но я не знаю как, потому что мой код читает файл .txt строка за строкой

    try {
            File myObj = new File("database.txt");
            Scanner myReader = new Scanner(myObj);
            while (myReader.hasNextLine()) { //to read each line of the file
                String data = myReader.nextLine();
                String [] array = data.split(" "); //store the words in the file line by line
                if(array.length ==5){ // to check if data has all five parameter 
                    people.add(new Person(array[0], array[1],array[2], Double.parseDouble(array[3]), Double.parseDouble(array[4]))); 
                }
            }
            JOptionPane.showMessageDialog(null, "Successfully Read File","Javank",JOptionPane.INFORMATION_MESSAGE);
            myReader.close();
        } catch (FileNotFoundException e) {
            System.out.println("An error occurred.");
            e.printStackTrace();
        }

1 Ответ

1 голос
/ 15 апреля 2020

Вы можете просто вызвать myReader.nextLine() дважды перед вводом l oop, чтобы игнорировать первые две строки.

Другой подход, который вы можете использовать, - это использовать RandomAccessFile объект вместо Scanner обработать ваш вклад. Если вы знаете, сколько символов содержится в файле до начала ваших соответствующих данных, вы можете использовать метод seek объекта RandomAccessFile, чтобы перейти к началу ввода, например, если в файле содержится 50 символов до данные, которые вы можете использовать randomAccessFile.seek(50), а затем читать строки с помощью randomAccessFile.readLine().

Я, вероятно, рекомендовал бы использовать первый метод пропуска 2 строк, поскольку он кажется более простым и надежным.

...