java从文本文件中拆分流并放入列表
如何使用流将从文本文件读取的所有元素放入ArrayList < MonitoredData >
,其中monitoredData类有以下3个私有变量:private Date startingTime, Date finishTime, String activityLabel
文本文件活动。txt如下所示:
2011-11-28 02:27:59 2011-11-28 10:18:11 Sleeping
2011-11-28 10:21:24 2011-11-28 10:23:36 Toileting
2011-11-28 10:25:44 2011-11-28 10:33:00 Showering
2011-11-28 10:34:23 2011-11-28 10:43:00 Breakfast
等等
前两个字符串由一个空格分隔,然后是两个制表符、一个空格和两个制表符
String fileName = "D:/Tema 5/Activities.txt";
try (Stream<String> stream = Files.lines(Paths.get(fileName))) {
list = (ArrayList<String>) stream
.map(w -> w.split("\t\t")).flatMap(Arrays::stream)
.collect(Collectors.toList());
} catch (IOException e) {
e.printStackTrace();
}
# 1 楼答案
您需要引入一个工厂来创建
MonitoredData
,在示例中,我使用Function
从String[]
创建MonitoredData
:那么您的代码在流上的操作应该如下所示,您不需要使用Collectors#toCollection来强制转换结果: