Новичок в Java 8 и практикую Streams
и Lambdas
.
Я пытаюсь создать Stream<String>
из содержимого файлов папки. Это то, что я безуспешно пробовал:
Stream<String> lineStream = Files.walk(Paths.get("resources")).flatMap(Files::lines);
Компилятор кричит, что я не ловлю IOException
, даже если у меня есть предложение throws. Кто-нибудь может мне это объяснить?
Мне удалось распечатать все интересующие меня файлы со следующим:
Files.walk(Paths.get("resources"))
.map(Path::toFile)
.filter(File::isFile)
.forEach(System.out::println);
Как мне получить Stream<String>
, где каждая String
является строкой файлов, напечатанных кодом выше?
IOException
, который, кажется, хорошо освещен другими вопросами и ответами. Если у вас есть дополнительные вопросы, вы можете отредактировать этот вопрос, сделав его более конкретным, или просто задать другой вопрос. - person Stuart Marks   schedule 23.09.2014flatMap
- это правильный способ объединения потоков. Чтобы предварительно отфильтровать потокPath
, вы должны узнать оFiles::isRegularFile
- person Holger   schedule 25.09.2014