什么是在QT中复制两个二进制文件的最佳方法

时间:2017-10-20 10:52:22

标签: qt binary file-copying

我想将一个二进制文件复制到另一个二进制文件。 我唯一的限制是复制必须通过QFile进行(因为我已经重载了一些内部方法,我需要它们运行)。 我写了一个天真的方法来解决,但是是一个缓慢的作家:

QFile * write_to = new QFile("myfile.bin");
if(write_to->open(QFile::WriteOnly))
{
    QFile read_from("my_outher_bin.bin");
    if(read_from.open(QIODevice::ReadOnly))
    {
        QDataStream write_data(write_to);
        QDataStream read_data(&read_from);

        while(write_to->size() < read_from.size())
            write_data << read_data;         
   }
}

最有效的方法是什么?

1 个答案:

答案 0 :(得分:0)

一种简单安全的方法,使用STD库,std::ifstream是一个不错的选择:

std::ifstream  src("file.txt", std::ios::binary);
std::ofstream  dst("to_file.txt",   std::ios::binary);
dst << src.rdbuf();

如果您使用的是C ++ 17,则可以使用&lt; filesystem&gt;扩展并使用fs::copy_file函数。

fs::copy_file("file.txt", "to_file.txt");