最佳答案
我目前正在用 c + + 编写一个程序,其中包括读取大量的大型文本文件。每行大约有400.000行,极端情况下每行有4000个或更多字符。为了进行测试,我使用 ifstream 读取了其中一个文件,并使用了 cplusplus.com 提供的实现。大概花了60秒,太长了。现在我想知道,有没有一个直接的方法来提高阅读速度?
编辑: 我使用的代码大致如下:
string tmpString;
ifstream txtFile(path);
if(txtFile.is_open())
{
while(txtFile.good())
{
m_numLines++;
getline(txtFile, tmpString);
}
txtFile.close();
}
编辑2: 我读取的文件只有82MB 大。我主要是说它可以达到4000,因为我认为可能有必要知道,以便进行缓冲。
编辑3: 谢谢你们所有人的回答,但是考虑到我的问题,似乎没有多少改进的余地。我必须使用 readline,因为我想计算行数。将 ifstream 实例化为二进制文件也不会提高读取速度。我会尽可能地将它并行化,至少这样应该可以。
编辑4: 所以显然我可以做一些事情。非常感谢您为此投入了这么多时间,我非常感激!=)