可能最短的方法是使用文件。write
以及将流
转换为可迭代
的技巧:
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);
}
问题内容: 假设我有一个Java8 ,并且使用了该流,那么如何控制流中使用的s 的关闭? 请注意,我可能无权访问个人,例如: 在进行了其他一些映射等之后,我终于在续集中失去了。 我首先认为垃圾收集器可以在需要时执行此操作,但是当它很长时,我已经经历了OS描述符耗尽。 问题答案: 关于使用FileReader的一般注意事项:FileReader在内部使用FileInputStream,它会覆盖并且因
但这是不对的,我不确定如何将maxCnt合并到流中。
问题内容: 假设我有一个对象,带有一些不错的方法: 将这个流写入文件 的 最短/最优雅的解决方案是 什么,每个流元素一行? 对于读取来说,有一个不错的方法,因此我认为必须有一种对称的方法可以写入文件,但是找不到。 只需要一个迭代。 问题答案: 也许最短的方法是使用与沿招其转换为: 例如: 如果看起来过于骇客,请使用更明确的方法: 如果您有一些自定义对象流,则始终可以添加步骤以应用该方法。
我是Java8的新手,不能使用流将一个数组映射到另一个二维数组。 和包含键的第二个数组。 0表示:从模式中取0元素 1表示:从模式中取1元素,以此类推 从这两个数组中,我想生成另一个二维数组。在这种情况下,结果如下所示: 请帮忙
阅读Java8的并行流API:https://docs.oracle.com/javase/tutorial/collections/streams/parallelism.html 还不清楚在使用这个流式API的并行性时,如何调优要使用的线程数? 计划在一个非常特定的机器类型和一致的数据类型上运行它,所以我想我可以在一组不同的设置上对它进行基准测试,然后使用最佳数量的线程。