我有超过 20 个 5000x30 双数组,每个数组都将使用以下命令写入文本文件:
PrintWriter test = new PrintWriter(new BufferedWriter(new FileWriter("test.txt")));
处理过程花了我 10 多分钟,我想看看是否有其他方法可以加快处理速度。
我有超过 20 个 5000x30 双数组,每个数组都将使用以下命令写入文本文件:
PrintWriter test = new PrintWriter(new BufferedWriter(new FileWriter("test.txt")));
处理过程花了我 10 多分钟,我想看看是否有其他方法可以加快处理速度。
不要在大量缓冲区上处理所有内容,而是在绝对必要之前避免刷新缓冲区。
实际上,这意味着不要使用println printf flush format
或任何其他会刷新缓冲区的方法。通过避免这种情况,您可以延迟并结合消耗运行时间的昂贵系统调用。
或者,在 PrintWriter 的构造函数中将 autoFlush 设置为 false。查看此问题以获取更多信息
将 PrintWriter 的 autoFlush 变量设置为 false。
PrintWriter test = new PrintWriter(new BufferedWriter(
new FileWriter("test.txt")), **false**);
完成整个写入( println )后,调用 test.flush()
这样可以避免中间冲洗时间。