【发布时间】:2011-04-26 10:18:09
【问题描述】:
实际上,我想在我们的Android手机中下载PDF文件,并且不想在他尝试通过将手机连接到PC打开时授予在PC中打开PDF文件的权限。 所以我想将 PDF 文件存储在 SQLite 数据库解决方案中。
我的问题是……
是否可以将 PDF 文件存储在 SQLite 数据库中?如果是,如何?
或者有没有其他方法可以实现相同的功能?
请帮帮我...
谢谢...
【问题讨论】:
实际上,我想在我们的Android手机中下载PDF文件,并且不想在他尝试通过将手机连接到PC打开时授予在PC中打开PDF文件的权限。 所以我想将 PDF 文件存储在 SQLite 数据库解决方案中。
我的问题是……
是否可以将 PDF 文件存储在 SQLite 数据库中?如果是,如何?
或者有没有其他方法可以实现相同的功能?
请帮帮我...
谢谢...
【问题讨论】:
你可以。只需读取pdf文件的所有字节并存储在sqlite db的blob字段中。
【讨论】:
一种解决方案是使用 blob 并将文件的原始数据作为列存储在 db 中。
我认为最好将文件存储在Internal Storage 和数据库中的其他解决方案只是为了存储文件路径。内部存储对您的应用程序来说是私有的,因此没有人可以访问这些文件。但是在这两种情况下都要小心,文件都存储在手机存储中,当手机存储空间不足时,人们会发现自己处于这种情况。
【讨论】:
AFAIK Sqlite 支持 BLOB 数据类型,我使用 BLOB 将图像存储到 MySql 数据库中,我认为您可以执行相同的操作来读取文件内容并将其存储到 SQLite 中的 BLOB 列中
【讨论】:
您可以使用 BLOB 数据类型将 PDF 文件存储在数据库中,但这不是我的建议,因为您使用 SQLlite 是可能的。有人说在数据库中存储二进制文件是一种肮脏的方式。大型数据库将导致查询速度变慢。
我的解决方案是将 PDF 文件存储在目录中并使用指向文件名的字符串指针。这将导致更快的查询和更小的数据库。唯一的缺点是您必须编写功能来重命名重复条目并在删除条目时从文件系统中删除文件。
如果数据库中的(大)二进制文件会使数据库变慢,请发表评论...
【讨论】: