【发布时间】:2016-09-23 03:58:49
【问题描述】:
我写了一个java程序,将数百万char(s)写入一个文件,如下:
PrintWriter text_writer = new PrintWriter("SearchString.txt");
Random r = new Random();
for (int i = 0; i < NumChars; i++) {
text_writer.print(alphabet.charAt(r.nextInt(N));
}
我知道,我的编程很糟糕,我没有考虑任何性能下降。该程序也运行得足够快,即在大约一分钟左右的时间内完成了 1000 万次循环。
一位不使用 Java 的同事评论说我的代码还可以,因为它实际上没有执行 1000 万次 IO。它很可能正在由中间缓冲区自动和最佳地处理。
我用谷歌搜索过,但没有看到任何这样的东西。
我的问题是:
这是真的吗?如果是,那么如何处理?
那么,我应该认为这种做法很好吗?
我不是在问如何使它达到最佳状态。这方面有很多材料。
【问题讨论】:
-
请包括您定义和实例化 text_writer 的位置。 PS:不要在 Java 中的变量名中使用下划线,使用 textWriter,或者更好的是,根据变量的用法而不是类型来命名变量。如果你按类型命名,你会很想重用对象,这是一种“代码味道”
标签: java performance file io