我正在进行一项任务,其中程序读取目录并获取目录中的文件数。但是,程序还必须在每个文件中执行字数统计。此外,该程序必须使用Java 8 Streams并使用Lambda语法。
问题:
如何计算目录中一组未确定文件中的单词?我不能只键入特定的文件名,尽管程序知道要查看的目录。
你会使用FileStream吗?一张地图? BOTH?
这是我到目前为止所做的。但是,它只计算目录中的文件并输出结果:
fileCatch8.java:
public class fileCatch8 {
public static void main(String args[]) {
List<String> fileNames = new ArrayList<>();
try {
DirectoryStream<Path> directoryStream = Files.newDirectoryStream
(Paths.get("files"));
for (Path path : directoryStream) {
fileNames.add(path.toString());
}
} catch (IOException ex) {
}
System.out.println("Count: "+fileNames.size() + " files");
}
}
wordCount8:
public class wordCount {
public static Map<String, Integer> countJava8Style(String input) {
return Pattern.compile("\\W+")
.splitAsStream(input)
.collect(Collectors.groupingBy(String::toLowerCase,
Collectors.summingInt(s -> 1)));
}
}