【发布时间】:2017-05-15 09:31:33
【问题描述】:
我有一个包含 100k 行的 .csv 文件,我使用 mysql 生成该文件。 我想将该文件拆分为较小的文件,每个文件包含 3k 行。 我如何使用 mysql 或 java 做到这一点?哪个更快? 我在 java 中找到了解决方案,但使用缓冲区读取器和缓冲区写入器需要 O(n^2)。
提前致谢。
【问题讨论】:
-
这是最坏情况的 O(n) 问题。这个所谓的 O(n^2) 解决方案是什么?
-
@KevinAnderson 是不是读取缓冲区需要 O(n) 而外部需要 O(n) ?
-
如果您从文件开头开始阅读并一直阅读到最后,则文件大小为 O(n)。如果你有一个循环也没关系,因为循环最多只运行 n 次;如果您一次阅读多个字符,则更少。如果您一次读取一个字符,则只有 O(n^2),每次从文件的开头开始。
-
@KevinAnderson 对,但我如何设法创建每个只有 3K 行的小文件?!