什么';这是在QT中复制两个二进制文件的最佳方法
我想把一个二进制文件复制到另一个二进制文件。 我唯一的限制是复制必须通过什么';这是在QT中复制两个二进制文件的最佳方法,qt,binary,file-copying,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::Read
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;
}
}
QFile*write_to=newqfile(“myfile.bin”);
如果(写入->打开(QFile::WriteOnly))
{
QFile读取自(“my_out her_bin.bin”);
if(从.open(QIODevice::ReadOnly)读取)
{
QDataStream写入数据(写入);
QDataStream读取数据(从中读取(&R);
while(write_to->size() 写入数据一种简单安全的方法,使用STD库,是一个很好的选择:
std::ifstream src("file.txt", std::ios::binary);
std::ofstream dst("to_file.txt", std::ios::binary);
dst << src.rdbuf();
使用STD库是一种简单而安全的方法,是一个很好的选择:
std::ifstream src("file.txt", std::ios::binary);
std::ofstream dst("to_file.txt", std::ios::binary);
dst << src.rdbuf();
为什么不呢?您更改了哪些内部方法?我更改了读写方法以在文件上添加加密和解密。文件大小是多少?800mb到5gb(可以先读取到内存(在64位windows上是im),但我认为这不是最有效的方法)查看QFile::copy
的方法,它似乎仍然使用read
和write
方法,如果这不起作用,则复制代码并执行类似操作(它们使用4k字节缓冲区并分块复制数据)。为什么不呢?您更改了哪些内部方法?我更改了读写方法以在文件上添加加密和解密。文件大小是多少?800mb到5gb(可以先读取到内存(在64位windows上为im),但我认为这不是最有效的方法)查看QFile::copy
的方法,它似乎仍然使用read
和write
方法,如果这不起作用,则复制代码并执行类似操作(它们使用4k字节缓冲区并分块复制数据)。他们正在寻找使用QFile的方法,因为他们正在重载某些内部方法。问题是什么?您仍然可以使用此函数,您可以访问完整的文件名或路径。他们正在寻找使用QFile的方法,因为他们正在重载某些内部方法。问题是什么?您仍然可以使用此函数在上,您可以访问完整的文件名或路径。