バイナリファイルを別のバイナリファイルにコピーしたいとします。 私が持つ唯一の制約は、コピーはQFile
を経由しなければならないということです(私はいくつかの内部メソッドをオーバーロードしていて実行する必要があるためです)。 私が解決する素朴な方法を書いたが、遅い作家である:QTで2つのバイナリファイルをコピーする最良の方法
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;
}
}
これを行うための最も効果的な方法は何ですか?
std::ifstream src("file.txt", std::ios::binary);
std::ofstream dst("to_file.txt", std::ios::binary);
dst << src.rdbuf();
あなたがC++ 17を使用している場合、あなたは< filesystem>拡張および使用を使用することができます。
[QFile :: copy](http://doc.qt.io/qt-5/qfile.html#copy)はなぜですか?どのような内部方法を変更しましたか? – xander
ファイルの暗号化と復号化を追加するための読み取りと書き込みの方法を変更しました – YOKO
ファイルのサイズは? – aghilpro