【问题标题】:How to read a list from a text file in java如何从java中的文本文件中读取列表
【发布时间】:2018-12-05 02:26:04
【问题描述】:

我正在尝试从包含多行的文本文件中读取数据,例如,看下图,这是我的文本文件

给定一个来自用户的关键字,它是文本文件列表中的第一个字符串。我想打印与给定关键字对应的列表或行。例如,如果我给关键字=59d2211ec3671594c987d008f89f043e97670a5ba6f08fe073e465116c35b440

然后我想将 [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;
}

有人可以指导我如何以正确的方式实现这一点。

【问题讨论】:

  • 它给你什么输出?
  • 如果你放的不是图片而是文字,我可以在发布之前测试我的答案
  • 您发布的代码中的“关键字”在哪里?

标签: java list file


【解决方案1】:

如果我给出关键字

好吧,如果你被赋予了一个价值,那么你应该使用它

readLines(File file, String keyword)

存储为列表

现在,我假设您的意思是将行拆分为列。如果是这种情况,您至少需要返回一个 List&lt;List&lt;String&gt;&gt;

但是,如果没有,您可以在收集包含这样的关键字的行之后再这样做

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;

FWIW,我建议看看 Java 8 流函数,包括 filtermaptoList

【讨论】:

    猜你喜欢
    • 2013-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多