Java 8 流到文件
2022-09-01 03:46:11
假设我有一个对象和一些不错的方法:将此流写入文件的最短/最优雅的解决方案是什么,每个流元素一行?java.util.stream.Stream
toString
对于阅读,有一个很好的方法,所以我认为一定有一个对称的方法写入文件,但找不到一个。 只接受可迭代。Files.lines
Files.write
假设我有一个对象和一些不错的方法:将此流写入文件的最短/最优雅的解决方案是什么,每个流元素一行?java.util.stream.Stream
toString
对于阅读,有一个很好的方法,所以我认为一定有一个对称的方法写入文件,但找不到一个。 只接受可迭代。Files.lines
Files.write
也许最短的方法是使用 Files.write
以及将 转换为 :Stream
Iterable
Files.write(Paths.get(filePath), (Iterable<String>)stream::iterator);
例如:
Files.write(Paths.get("/tmp/numbers.txt"),
(Iterable<String>)IntStream.range(0, 5000).mapToObj(String::valueOf)::iterator);
如果它看起来太黑客,请使用更明确的方法:
try(PrintWriter pw = new PrintWriter(Files.newBufferedWriter(
Paths.get("/tmp/numbers.txt")))) {
IntStream.range(0, 5000).mapToObj(String::valueOf).forEach(pw::println);
}
如果您有某些自定义对象的流,则始终可以添加步骤以应用该方法。.map(Object::toString)
toString()