处理巨大的utf8文件,拆分为多个文件

时间:2016-11-06 05:10:25

标签: c# file filesplitting

我正在开发一个导入程序,用于在C#中导入大文本utf8(字符字节是不同的)文件。如果我将所有20GB文件加载到RAM,这个解决方案是不合适的。将文件拆分为多个较小的文件进行处理会更好。现在,我的问题是拆分文件foe处理。我的解决方案是逐行读取文件,如果行号是我合适的数字,则拆分它们。但我认为,逐行读取文件并不是快速解决方案。分裂时间很长。是否有一种算法可以将大型utf8文件拆分为多个文件,而无需逐行读取,速度更快。

1 个答案:

答案 0 :(得分:0)

我对您的问题的建议如下。我认为考虑到关注点的分离,因为文件的拆分和文件处理可以分开进行更好的维护。

  1. 以二进制而不是文本
  2. 读取文件
  3. 请勿逐行阅读,因为您不需要阅读文件进行拆分。
  4. 使用搜寻。请参阅link
  5. 如果您需要使用完整的行保存拆分文件,那么在您寻找位置后,搜索下一行结束字符,然后相应地拆分文件。
  6. 分割文件后,单独处理文件。