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

   2024-09-30 3370
核心提示:在C++中,处理大文件时可以使用read()函数进行分块读取#includeiostream#include fcntl.h#include unistd.h#include cstdintcons

在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字节。在每个循环中,程序将读取到的数据输出到控制台。当文件读取完毕时,程序将关闭文件描述符并退出。

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

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式 | 网站留言    |  赣ICP备2021007278号