单Java 8流<;字符串>;从文件夹内容

单Java 8流<;字符串>;从文件夹内容,java,lambda,java-8,java-stream,Java,Lambda,Java 8,Java Stream,Java 8新手,正在练习Streams和Lambdas 我正在尝试从文件夹文件内容中创建一个流。这是我尝试过但没有成功的东西: Stream<String> lineStream = Files.walk(Paths.get("resources")).flatMap(Files::lines); 如何获得一个流,其中每个字符串都是由上述代码打印的一行文件?另请参见此问题:。不要关闭它!除了lambda表达式引发选中异常外,这是连接多个文件流的最佳方法吗?有没有更简洁的方法?如果

Java 8新手,正在练习
Streams
Lambdas

我正在尝试从文件夹文件内容中创建一个
。这是我尝试过但没有成功的东西:

Stream<String> lineStream = Files.walk(Paths.get("resources")).flatMap(Files::lines);

如何获得一个
,其中每个
字符串
都是由上述代码打印的一行文件?

另请参见此问题:。不要关闭它!除了lambda表达式引发选中异常外,这是连接多个文件流的最佳方法吗?有没有更简洁的方法?如果一些文件是文件夹呢?目前的问题主要是关于处理
IOException
,其他问题和答案似乎都很好地涵盖了这一点。如果您还有其他问题,您可以将此问题编辑得更具体一些,或者只是问一个不同的问题。@Gevorg:是的,
flatMap
是连接流的正确方法。要预筛选
Path
s流,您应该了解
List rowList=Path.filter(Files::isRegularFile).flatMap(a->{try{return Files.lines(a);}catch(IOException e){throw new UncheckedIOException(e);}}).collect(collector.toList())
Files.walk(Paths.get("resources"))
    .map(Path::toFile)
    .filter(File::isFile)
    .forEach(System.out::println);