从文件中读取值并将它们拆分为两个带有 Java 流的列表
Posted
技术标签:
【中文标题】从文件中读取值并将它们拆分为两个带有 Java 流的列表【英文标题】:Reading values from a file and splitting them into two lists with stream in Java 【发布时间】:2020-03-28 00:15:41 【问题描述】:假设我们有一个带有像这样的给定输入的文件
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();
【问题讨论】:
你是说每一行输入都要解析成一个单独的List? 只有两行,所以从技术上讲,是的,每个输入行都应该被解析成一个单独的列表。 对我来说,如果过度使用流来完成此类任务。只需按照标准方式进行即可。 如果存在两个列表遵循的模式,您可以使用过滤器功能并将其相应地转储到相应的列表中 【参考方案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();
【讨论】:
以上是关于从文件中读取值并将它们拆分为两个带有 Java 流的列表的主要内容,如果未能解决你的问题,请参考以下文章
将 UInt32(音频帧)拆分为两个 SInt16(左右)?