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