Вы отображаете каждую строку в массив (преобразует Stream<String>
в Stream<String[]>
, а затем подсчитываете количество элементов массива (то есть количество строк в файле).
Вы должны использовать flatMap
для создания Stream<String>
всех слов в файле, и после операций distinct()
и count()
вы получите количество отдельных слов.
long wordCount =
Files.lines(Paths.get("sample.txt"))
.flatMap(line -> Arrays.stream(line.split("\\s+")))
.distinct()
.count();