C ++一次读取6.32 GB文件

时间:2018-05-07 18:43:07

标签: c++

用于将6.32 GB文件一次读入数组的功能。 ReadFile函数仅限于DWORD。

DWORD bytes_to_read, bytes_read;
ReadFile(handle, src, bytes_to_read, &bytes_read, nullptr);
CloseHandle(handle);

ReadFile function, Windows Dev Center

1 个答案:

答案 0 :(得分:1)

对于您的第一次传递而未进行优化,我建议您使用std::vectorstd::ifstream

二进制数据:

std::ifstream input_data("my_file.dat" | ios::binary);
std::vector<DataType> data_from_file(DATA_ITEMS_TO_READ);
input_data.read((char *) data_from_file.begin(),
                 sizeof(Data_Type) * DATA_ITEMS_TO_READ);

对于文字数据:

std::ifstream input_data("my_file.txt");
std::vector<DataType> data_from_file;
Data_Type datum;
while (input_data >> datum)
{
  data_from_file.push_back(datum);
}

其中DataType是数据的类型,例如intcharDWORD

如果输入太慢,可以进行优化。在优化文件读取之前,让项目的其余部分稳健可靠地工作。