SQLite数据库上的PDF文件

时间:2019-05-16 05:57:59

标签: android sqlite pdf

我可以在Android的SQLite数据库中添加书籍吗? 如果是,怎么办? 我想将这些书放在数据库中,因为我要添加到android应用程序的书太多了,而且我不想增加应用程序的大小。

2 个答案:

答案 0 :(得分:0)

您无法做到。您不能将文件存储在SQLite数据库中。您将文件存储在asserts文件夹中。

答案 1 :(得分:0)

  

由于动态解压缩,内部资产的上限为1MB; 1MB的限制似乎也适用于Cursor Blob,但这似乎在任何地方都没有记载。

     

通常,应避免在SQLite中出现斑点,因为斑点表现不佳;相反,>将Blob数据另存为文件并将文件的位置存储在数据库中

我不建议在SQLite中存储pdf文件,您只需提供一个简单的链接即可将其下载给用户。但是,如果要将其存储在此处,则可以执行以下操作。 首先,您需要将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-值是数据的一滴,存储的内容与输入时完全相同。

这是一个制作包含两列的表的示例-一个id和一些数据,这是一个BLOB: 仅作为示例,您可以创建一个像这样的表

CREATE TABLE t1 (id INTEGER PRIMARY KEY, data BLOB);