我正在从一个目录(包含数千个文件)读取 XML 文件,处理内容并为每个输入文件写入一个输出文件。有没有一种方法可以“重新指向”现有的 BufferedWriter,而不是为每个文件创建一个新实例?
...
Scanner scanner;
BufferedWriter writer;
File outfile;
for (File f: directory.ListFiles[]){
scanner = new Scanner(f);
outfile = ...;
// processing input
writer = new BufferedWriter(new FileWriter(new File(outfile)));
// write the content
writer.flush();
writer.close();
}
...
创建 Scanner
和 BufferedWriter
的数千次迭代似乎是一种浪费。
最佳答案
对我来说,这听起来像是一个不成熟的优化。 JVM 是地球上最智能的软件部分之一,可以检测您的对象是否是短暂的。它还可以(并且将会)执行大量优化。您尝试进行的任何微观优化很可能只会导致性能不佳。
性能优化的关键是测量,而不是推理。
关于java - 是否有重用 BufferedWriter 的模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7283420/