我需要在C++中读取一个大文本文件(> 10 GB)。这是一个具有可变长度行的csv文件。当我尝试使用ifstream逐行读取时,它可以工作但需要很长时间,我猜这是因为每次读取一行时都要去硬盘上读取,这使得速度非常慢。
有没有一种方法可以缓冲读取,例如一次读取250 MB(使用ifstream的read方法),然后从此缓冲区获取行,我看到了许多解决方案的问题,例如缓冲区可能有不完整的行等等。
在C++中是否有解决这个问题的解决方案,可以处理所有这些情况等等?是否有任何开源库可以做到这一点,例如boost等?
注意:我想避免使用C风格的FILE*指针等。
有没有一种方法可以缓冲读取,例如一次读取250 MB(使用ifstream的read方法),然后从此缓冲区获取行,我看到了许多解决方案的问题,例如缓冲区可能有不完整的行等等。
在C++中是否有解决这个问题的解决方案,可以处理所有这些情况等等?是否有任何开源库可以做到这一点,例如boost等?
注意:我想避免使用C风格的FILE*指针等。