我有一个程序可以在一个平面文件中写入大约 800 万行数据。截至目前,该程序正在为每条记录调用 bufferedwriter.write,我打算使用以下策略批量写入
- 保留一个数据结构(我使用数组)来保存特定数量的记录。
使用数组将详细信息写入文件。这是代码片段(数组是存储记录的数组的名称,阈值计数是编写过程的开始)
if (array.length==thresholdCount) { writeBulk(array); } public void writeBulk(String[] inpArray) { for (String line:inpArray) { if (line!=null) { try { writer.write(line +"\n"); } catch (IOException e) { e.printStackTrace(); } } } }
但是我没有看到太多的性能改进。我想知道是否有办法确定最佳阈值计数?我还计划进一步调整代码,以便将数组中的每个元素存储为一些 n 条记录的串联,然后调用 bulk 方法。例如,长度为 5000 的数组实际上将包含 50000 条记录,其中数组中的每个索引包含 10 条记录。但是在这样做之前,我需要专家意见。