您可以尝试删除BufferedWriter并直接使用FileWriter。在现代系统中,你很可能只是写入驱动器的高速缓冲存储器。
这需要我在4-5秒的范围内写入175MB(400万字符串) - 这是在双核2.4GHz戴尔运行Windows XP和80GB,7200-RPM Hitachi磁盘上。
你能分辨出多少时间是记录检索和文件写入多少?import java.io.BufferedWriter;import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.io.Writer;import java.util.ArrayList;import java.util.List;public class FileWritingPerfTest {private static final int ITERATIONS = 5;private static final double MEG = (Math.pow(1024, 2));private static final int RECORD_COUNT = 4000000;private static final String RECORD = "Help I am trapped in a fortune cookie factory\n";private static final int RECSIZE = RECORD.getBytes().length;public static void main(String[] args) throws Exception {
List records = new ArrayList(RECORD_COUNT);
int size = 0;
for (int i = 0; i
records.add(RECORD);
size +