我正在开发一个导入程序,用于在 C# 中导入大文本 utf8(字符字节不同)文件。如果我将所有 20GB 文件加载到 RAM,则此解决方案不合适且可能。最好将文件拆分为多个较小的文件进行处理。现在,我的问题是拆分文件敌人处理。我的解决方案是逐行读取文件并在行号是我合适的数字时拆分它们。但我认为,逐行读取文件进行拆分并不是快速的解决方案。分裂时间长。是否有一种算法可以将大型 utf8 文件拆分为多个文件,而无需逐行读取并且速度更快。
问问题
209 次
1 回答
0
我对您的问题的建议如下。我认为要记住关注点分离,因为文件的拆分和文件的处理可以分开以便更好地维护。
- 以二进制而不是文本读取文件
- 不要逐行阅读,因为您不需要阅读文件进行拆分。
- 使用寻找。参考链接。
- 如果您需要保存完整行的拆分文件,那么在您寻求定位后,搜索下一个行尾字符,然后相应地拆分文件。
- 拆分文件后,单独处理文件。
于 2016-11-06T05:59:22.477 回答