需要以块的形式读取大小超过5 GB的文本文件,以减少使用C ++的处理时间

时间:2014-11-21 06:38:02

标签: c++ fstream chunks

#include<iostream>
using namespace std;
int main(){    
    string lineValue;
    ifstream myFile("file.txt");
    if (myFile.is_open()) {

        while (getline(myFile, lineValue)) {
            cout << lineValue << '\n';
        } 
        myFile.close();
    }
    else cout << "Unable to open file";
    return 0;
}
  1. 想要以块的形式阅读文件。
  2. 我刚读过的那个块应该进一步解析。
  3. 与此同时,应该阅读另一个块。
  4. 我该怎么做?

1 个答案:

答案 0 :(得分:0)

可以在Message passing between threads using a command file下找到一种解决方案(逐行读取文件并将行传递给线程)。然而,效率取决于工作线程的任务的复杂性。有时,文件I / O缓冲已足够有效,可以补偿I / O延迟。