gpt4 book ai didi

java - 写入文件的最快方法?

转载 作者:IT老高 更新时间:2023-10-28 21:03:29 27 4
gpt4 key购买 nike

我做了一个方法,它接受一个 File 和一个 String。它用该字符串作为其内容的新文件替换文件。

这是我做的:

public static void Save(File file, String textToSave) {

file.delete();
try {
BufferedWriter out = new BufferedWriter(new FileWriter(file));
out.write(textToSave);
out.close();
} catch (IOException e) {
}
}

但是它的速度非常缓慢。有时需要一分钟以上。

如何编写包含数万到一百万个字符的大文件?

最佳答案

确保分配足够大的缓冲区:

BufferedWriter out = new BufferedWriter(new FileWriter(file), 32768);

您在哪种操作系统上运行?这也可以产生很大的不同。但是,花 分钟 写出一个小于巨大大小的文件听起来像是一个系统问题。在 Linux 或其他 *ix 系统上,您可以使用诸如 strace 之类的东西来查看 JVM 是否进行了大量不必要的系统调用。 (很久以前,Java I/O 非常愚蠢,如果你不小心的话,会发出疯狂的低级 write() 系统调用,但是当我说“很长一段时间以前”我的意思是 1998 年左右。)

edit — 请注意,Java 程序以一种简单的方式编写一个简单的文件,但速度确实很慢,这种情况天生就很奇怪。你能知道在写入文件时 CPU 是否负载过重吗?不应该;这样的事情应该几乎没有CPU负载。

关于java - 写入文件的最快方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4576222/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com