使用QT5中的QByteArray QIODevice::readAll(),我能够从txt文件或图像中创建一个字节数组,然后使用解码并正确地重新创建文件。但是,当我尝试使用.db文件(SQLITE)时,它无效。
我注意到当您使用文本编辑器打开.db时,您会看到“SQLite格式3”,后跟编码字符。从.db文件创建QByteArray之后,然后使用decode()重新创建文件,当我使用文本编辑器打开它时,该文件只包含文本“SQLite format 3”。
QByteArray仅适用于txt文件或Image文件吗?
如果是,我如何从.db(SQLITE)文件中创建一个字节数组。
由于
Update1(以下代码有效):
QFile file("C:/database.db");
if(!file.open(QIODevice::ReadOnly))
qDebug()<<"You are stupid!";
QByteArray byteArray = file.readAll();
QFile file2("C:/database2.db");
file2.open(QIODevice::WriteOnly);
file2.write(byteArray);
file2.close();
file.close();
UPDATE2:
关于我在初始问题中提到的解码,我使用了以下内容:
QString QFile::decodeName(const QByteArray & localFileName)
当你仔细阅读文档时没有任何意义,这是错误的。 :)
答案 0 :(得分:1)
您不应该使用QIODevice :: Text标志打开该文件。