在c ++中有效地读取大txt

use*_*060 10 c++ boost large-files

我必须在C++中读取一个大文本文件(> 10 GB).这是一个具有可变长度行的csv文件.当我尝试使用ifstream逐行读取它但是需要很长时间时,我想这是因为每次我读取它进入磁盘并读取的行时,这使得它非常慢.

有没有办法读取bufferes,例如一次读取250 MB(使用ifstream的读取方法),然后从此缓冲区获取行,我看到很多问题与缓冲区的解决方案可能有不完整的行等.

在c ++中是否有解决方案来处理所有这些情况等.是否有任何开源库可以执行此操作,例如boost等?

注意:我想避免使用c stye FILE*指针等.

Gre*_*ndt 7

尝试使用Windows内存映射文件功能.这些调用是缓冲的,你可以像处理内存那样处理文件. 内存映射文件