c++ read()函数处理大文件的方法

avatar
作者
筋斗云
阅读量:0

在C++中,处理大文件时可以使用read()函数进行分块读取

#include<iostream> #include <fcntl.h> #include <unistd.h> #include <cstdint>  const size_t BUFFER_SIZE = 4096; // 定义缓冲区大小  int main() {     int fd = open("large_file.txt", O_RDONLY); // 打开大文件     if (fd == -1) {         std::cerr << "Error opening file."<< std::endl;         return 1;     }      char buffer[BUFFER_SIZE]; // 创建缓冲区     ssize_t bytes_read;      while (true) {         bytes_read = read(fd, buffer, BUFFER_SIZE); // 分块读取文件         if (bytes_read == -1) {             std::cerr << "Error reading file."<< std::endl;             close(fd);             return 1;         }         if (bytes_read == 0) {             break; // 文件已读完         }          // 处理读取到的数据(例如,将其输出到控制台)         for (ssize_t i = 0; i< bytes_read; ++i) {             std::cout<< buffer[i];         }     }      close(fd); // 关闭文件描述符     return 0; } 

这个示例程序首先打开一个名为large_file.txt的大文件。然后,它使用read()函数分块读取文件内容,每次读取BUFFER_SIZE字节。在每个循环中,程序将读取到的数据输出到控制台。当文件读取完毕时,程序将关闭文件描述符并退出。

注意:在实际应用中,你可能需要根据具体需求对读取到的数据进行处理,而不仅仅是将其输出到控制台。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!