繁体   English   中英

C ++如何附加ifstream以将多个文件读取为一个大文件

[英]C++ how to append ifstream to read multiple files as one big file

我的文件分成许多较小的文件。 例如,我有

file1 file2 ... file10

file1到file10只是一个分成10个文件的文件。现在,我想读取这10个文件,并且由于文件太大,我想避免将这10个文件合并在一起以创建一个大文件。 我想一个接一个地阅读它们,好像它是一个大文件一样。

这就是我现在所拥有的,一次读取一个文件。

std::ifstream file(filePath, std::ios_base::in | std::ios_base::binary);
iostreams::filtering_istream input;
// check if the file is a .gz file by checking the file extension
if (filePath.compare(filePath.size() - 3, 3, ".gz") == 0)
{
  input.push(iostreams::gzip_decompressor());
}
input.push(file);

有没有一种方法可以附加多个ifstream,以便一个接一个地读取多个文件,就好像它们是一个大文件一样?

我想使用ifstreams,因为每个后续文件(文件2到10)都有4个我要跳过的元数据行。

非常感谢任何关于如何附加的帮助。

此伪代码可能会对您有所帮助。

int main()
{
    // Get files Names (e.g. data1.txt)
    std::vector<std::string> filesNames;

    for( i < filesNames.size() ){
        // Open File 
        // Check if it is opened successfully.
        // Read data via while() loop
        // Close File
    }

    return 0;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM