使用Java中的流从文件中读取数值并将其拆分为两个列表

3
假设我们有一个文件,其输入如下:
List1,List2,List3,List4,List5,List6,List7.......
.....List8,List9
ListX1,ListX2,ListX3.......

List9后面有一个新行字符。如何让流将新行字符之前的元素收集到一个列表中,将剩余的元素收集到第二个列表中?

List<String> fWire = new ArrayList<String>();
try (Stream<String> stream = Files.lines(Paths.get(filePath))) {
        .......
    } catch (IOException e) {
        e.printStackTrace();
    }

你是说每个输入行都应该解析成一个单独的列表吗? - Eran
从技术上讲,只有两行,因此每个输入行都应该被解析成一个单独的列表。 - JohnC
1
在我看来,对于这样的任务使用流处理可能有些过度了,最好还是按照标准方式来实现。 - Amongalen
如果有两个列表遵循某种模式,您可以使用过滤函数并相应地将其转储到各自的列表中。 - beginner_coder
1个回答

1

看起来你需要一个 List<List<String>>。每个内部的 List 代表一行输入:

List<List<String>> lists = null;
try (Stream<String> stream = Files.lines(Paths.get(filePath))) {
    lists = stream.map(s -> Arrays.asList(s.split(",")))
                  .collect(Collectors.toList());
} catch (IOException e) {
    e.printStackTrace();
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接