我们能否将.doc、.pdf和.jpg文件存储在SQLite数据库(Android)中?

19

能否在SQLite数据库中存储像pdf doc这样的文件并成功地检索它们,这些文件必须完整且可读。 我知道我们可以存储图像文件,但对于上述内容呢?

即使我们可以存储,最大文件大小是多少?


不,SQLite 应该是嵌入式数据库,只用于保存最少的数据。 - Pankaj Nimgade
是的,我知道不建议将文件保存在SQLite数据库中,但是场景是将高度机密的文件存储在用户的移动设备上,然后再检索回来。这些文件非常小。因此,计划是创建一个加密的SQLite数据库并临时存储文档。 - Prasanth Perumal
3个回答

19

可以的,请继续。将每个文件都存储在数据库中比仅使用数据库来跟踪每个文件所在位置更容易。

如果文件很小,则性能应该很好。来自SQLite网站

...许多开发人员惊讶地发现,SQLite可以更快地从其数据库读取和写入较小的BLOB(大小不到约100KB) ,而这些相同的BLOB作为单独的文件从文件系统中读取或写入则要慢得多。 (有关详细信息,请参见35% Faster Than The Filesystem和Internal Versus External BLOBs。)操作关系数据库引擎需要一定的开销,但不能认为直接文件I / O比SQLite数据库I / O更快速,因为通常并非如此。


13

我知道我们可以存储图像文件,但对于上述情况呢?

从SQLite的角度来看,图像与其他类型的文件没有区别。您可以将文件内容存储在BLOB列中。这可能不是非常高效。

即使我们可以存储,最大文件大小会是多少?

SQLite数据库的限制大约为2TB。您的Android设备不会有那么多的存储空间。


感谢您的回答,CommonsWare...已成功将文件存储在数据库中。现在需要查找库以在应用程序内向用户显示.doc和.pdf文件。 - Prasanth Perumal

0

SQLite是一个轻量级组件。 不要将像.pdf和.doc这样的文件存储在SQLite中,而是将它们存储在内部存储器中,并获取内部存储器中的路径,现在将其作为字符串存储在SQLite中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接