c++ - C++读取大文件

标签 c++ text-files filestream binaryfiles

假设我有一个大小为 9 GB 的 .txt 文件。我只想读第 n 个 MB。 (我知道什么是 n)。但是我的电脑只有 4GB 内存,所以我无法一次加载所有文件。我需要多次访问不同的 n。执行此操作的最佳方法是什么(我不知道标准 ifstream 是否能够执行此操作)。

最佳答案

您想在文件中“寻找”到指定位置。在使用 ifstream 的 C++ 中,您使用 seekg():http://www.cplusplus.com/reference/istream/istream/seekg/

例如:

char data[1024*1024];
ifstream in("myfile.txt");
in.seekg(450 * 1024 * 1024, ios_base::beg); // skip 450 MB
if (in.read(data, sizeof(data)) {
    // use data
}

关于c++ - C++读取大文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40701713/

相关文章:

C++ ofstream 无法从变量名打开文件(即使在使用 c_str() 之后)

jquery - Perl CGI::Application::Plugin:Stream + Jquery Taconite 插件 - 无法下载文件

nhibernate - 带有 NHibernate 的 SQL 2008 文件流

python - 停止嵌入式 python

c++ - 枚举类型比较错误

c++ - 具有共享内存的 CUDA 矩阵转置

android - 在 Android 中将数据 append 到文本文件

C# (sharp) 从 txt 文件中读取随机行

matlab - 来自 matlab 的制表符分隔文本文件

c++ - DXGetErrorString 新手问题