哪个更好?继续写入文件或创建StringBuilder对象并写入文件?

时间:2014-05-28 16:13:38

标签: file-io stringbuilder

我编写了一个应用程序,它提取excel数据并从中创建SQL CREATE和INSERT语句。现在我正在使用一个StringBuilder,在读取和提取数据后我继续追加语句,最后将其写入文件。另一种选择是在我阅读的时候继续写入文件,但由于对光盘操作的写入太多而成本很高。所以我想知道我的思维方法是否正确,我应该继续使用StringBuilder写入文件吗?

2 个答案:

答案 0 :(得分:1)

这两种方法都不对,但我会使用这两种方法的混合方法。写入块大小取决于数据的重要性。如果它不容易恢复并且很重要,那么您需要编写较小的块。如果它不那么重要并且可以轻松恢复,请使用更大的块大小。

答案 1 :(得分:1)

您应该继续使用StringBuilder。我最近尝试过类似的应用程序,在你生成的每个语句之后写入文件非常慢。

当然,如果你有大量的语句(我会说> 100k,但它取决于每个语句的大小),你可能想要将StringBuilder转储到文件中每个X语句都避免使用太多内存。 X将取决于每个SQL语句的大小。

BTW,你没有指定你使用的是哪个数据库,但如果你使用的是MySQL,你应该创建一个INSERT语句来插入多行。它的工作速度比每行的单个语句快得多(例如 - INSERT INTO TableName VALUES (x1,y1,z1),(x2,y2,z2),...,(xn,yn,zn););