在java中写入文件的最快方法

时间:2012-04-14 22:54:24

标签: java optimization file-io directory-structure

我正在编写一个比较目录结构的应用程序。首先,我写了一个应用程序,写入获取有关文件的信息 - 关于每个文件或目录的一行。

这是我的方法toFile()

的解决方案
Static PrintWriter pw = new PrintWriter(new BufferedWriter( new FileWriter("DirStructure.dlis")), true);
String line; // info about file or directory
public void toFile(String line) {
    pw.println(line);
}

当然还有pw.close(),最后。

我的问题是,我可以更快地完成吗?什么是最快的方式?

编辑: “最快”方式的含义是在文件中写得最快

2 个答案:

答案 0 :(得分:3)

Sun实际上有一个tutorial。据他们说,你可以达到17倍的速度(在最坏的情况下,最好的情况下)。

他们谈论缓冲,直接缓冲,操作系统和更多有用的主题 考虑到,正如你所说,你会有很多文件和行,我建议使用流压缩/解压缩作为一种方法,但是要读完整个事情(我没有,只能从经验中回答)。

编辑:
考虑到它的功课,对该页面中所有概念的了解肯定会给你的老师留下深刻的印象,所以你可以添加一些评论来说明你在做什么,为什么,以及列出其他选择。 ;)

编辑2:
刚刚看到该行包含的内容。如果文件仅包含该信息,请考虑在队列中为下一个文件异步创建行。也就是说,目录应该是多个目录名称,正确组合等等。请参阅快速操作链接的this section以获取文件信息。

答案 1 :(得分:0)

Peter Lawrey 写道:
您可以获得数据的速度几乎肯定会慢100倍,因此写入可能会很好。
所以看来我的解决方案在问题中表现得很好。