PDF файлы в базе данных SQLite - PullRequest
0 голосов
/ 16 мая 2019

Могу ли я добавить книги в базу данных SQLite в Android ?? Если да, то как? Я хочу поместить книги в базу данных, потому что у меня слишком много книг, чтобы добавить их в приложение для Android, и я не хочу слишком увеличивать размер приложения.

Ответы [ 2 ]

0 голосов
/ 16 мая 2019

Существует ограничение в 1 МБ для внутренних активов из-за динамической декомпрессии; ограничение в 1 МБ> также применимо к BLOB-объектам курсора, но это, похоже, нигде не задокументировано.

Как правило, в SQLite следует избегать больших двоичных объектов, поскольку они плохо работают; вместо этого> сохраните данные большого двоичного объекта как файл и сохраните местоположение файла в вашей БД

Я не рекомендую хранить pdf-файлы в SQLite, вы можете просто предоставить простую ссылку, чтобы загрузить их пользователю. но если вы хотите сохранить его здесь, вы можете сделать что-то вроде этого. Во-первых, вам нужно преобразовать файл PDF в байтовый массив

import java.nio.file.*;

Path pdfFilePath = Paths.get("/file/path/your_file.pdf");

// Read file to byte array
byte[] pdfByteArray = Files.readAllBytes(pdfFilePath );

// Write byte array to file 
Files.write(pdfFilePath , pdfByteArray);

Вы ищете BLOB для хранения данных в Android SQLite.

BLOB - значение представляет собой блок данных, сохраняемый в точности так, как он был введен.

Вот пример создания таблицы с двумя столбцами - идентификатором и некоторыми данными, которые являются BLOB: просто для примера, вы можете создать такую ​​таблицу

CREATE TABLE t1 (id INTEGER PRIMARY KEY, data BLOB);
0 голосов
/ 16 мая 2019

Вы не можете сделать это.Вы не можете хранить файлы в базе данных SQLite.Вы будете хранить ваши файлы в папке подтверждений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...