2016-09-01 2 views
0

Используя из QT5, мне удалось создать массив байтов из txt-файла или изображения, использовать декодирование после и воссоздать файл правильно. Но, когда я попытался с .db-файлом (SQLITE), это не сработало.Как сделать QByteArray из файла базы данных

Я заметил, что когда вы открываете .db с текстовым редактором, вы увидите «формат SQLite 3», за которым следуют закодированные символы. После создания QByteArray из файла .db, за которым следует decode(), чтобы воссоздать файл, когда я открыл его текстовым редактором, файл содержит только текст «SQLite format 3».

Работает ли QByteArray с txt-файлом или файлом изображения?

Если это так, то как я могу сделать массив из байта из файла .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

Что вы имеете в виду 'декодировании()'? Продемонстрируйте минимальный автономный пример. Это должно быть легко, вы делаете что-то неправильно. –

+0

Нет, 'QByteArray' не заботится о том, что внутри него. –

ответ