我有一个包含 15 万条记录的数据库。我想尽快将其写入文件。我尝试了很多方法,但似乎都很慢。我怎样才能让它更快?
我以 40k 为单位读取这些记录。所以首先我读了 40k,然后又读了 40k,依此类推。
读取记录后,此过程返回一个包含 40k 行的 StringBuilder。然后我们将这个 StringBuilder 写入一个文件。
private static void write(StringBuilder sb, Boolean append) throws Exception {
File file = File.createTempFile("foo", ".txt");
FileWriter writer = new FileWriter(file.getAbsoluteFile(), append);
PrintWriter out = new PrintWriter(writer);
try {
out.print(sb);
out.flush();
writer.flush();
} finally {
writer.close();
out.close();
}
}
我读了另一个例子,但它同样慢:Fastest way to write huge data in text file Java
我也用 NIO api 试过:
private static void write(StringBuilder sb, Boolean append)) throws Exception {
FileChannel rwChannel = new FileOutputStream("textfile.txt", true).getChannel();
ByteBuffer bb = ByteBuffer.wrap(sb.toString().getBytes("UTF-8"));
rwChannel.write(bb);
rwChannel.close();
}
将大量数据写入/附加到文件中的最佳方法是什么?