Как читать список из текстового файла в Java - PullRequest
0 голосов
/ 05 декабря 2018

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

enter image description here

Учитывая ключевое слово изпользователь, который является первой строкой в ​​списке из текстового файла.Я хочу напечатать список или строку, соответствующую данному ключевому слову.Например, если я даю ключевое слово = 59d2211ec3671594c987d008f89f043e97670a5ba6f08fe073e465116c35b440

1007 * Тогда я хочу, чтобы хранить [59d2211ec3671594c987d008f89f043e97670a5ba6f08fe073e465116c35b440, id4, ID6, id1] в виде списка.

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

public static List<String> readLines(File file) throws Exception {
    if (!file.exists()) {
        return new ArrayList<String>();
    }
    BufferedReader reader = new BufferedReader(new FileReader(file));
    List<String> results = new ArrayList<String>();
    String line = reader.readLine();
    while (line != null) {
        results.add(line);
        line = reader.readLine();
    }
    return results;
}

Может кто-нибудь подсказать мне, как реализовать это вправильный путь.

1 Ответ

0 голосов
/ 05 декабря 2018

если я даю ключевое слово

Ну, если вам дано значение, то вам следует использовать его

readLines(File file, String keyword)

storeкак список

Теперь я предполагаю, что вы имеете в виду разделить строку на столбцы.Если это так, вам нужно вернуть хотя бы List<List<String>>

Однако, если нет, вы можете сделать это позже, чем собрать строки, содержащие ключевое слово, например

List<String> results = new ArrayList<String>();
String line = reader.readLine();
while (line != null) {
    if (line.contains(keyword))  results.add(line);
    line = reader.readLine();
}
return results;

Кстати, я бы посоветовал взглянуть на функции потока Java 8, включая filter, map и toList

...