java - android中基于文件的文档存储

标签 java android sqlite document document-storage

我正处于 Android 笔记应用程序的早期阶段,我希望有人能为我指出一个很好的存储笔记数据的解决方案。

理想情况下,我希望有一个解决方案:

  • 每个笔记文档都是一个单独的文件(用于 dropbox 同步)
  • 一条笔记可以由多页组成
  • 笔记页可以有二进制数据(比如图片)
  • 可以加载单个页面,而无需将整个文档解析到内存中
  • 线程安全:多个读/写可以同时发生。

XML 不可用(至少对于整个文件),因为我没有一次提取单个页面的好方法。我考虑过使用 zip 文件,但(尤其是在压缩时)我认为它们也会卡住加载整个文件。

似乎应该有一个 Java 库可以执行此操作,但我的 google-fu 却让我失望了。我能想到的唯一其他选择是为每个笔记制作一个单独的 sqlite 数据库。

有人知道解决这个问题的好方法吗?谢谢!

最佳答案

似乎关系数据库可以在这里工作。您只需要稍微尝试一下架构。

也许可以制作一个页面表,其中每一页都包括,比如说,它所属的文档的一个字段和它在文档中的顺序的一个字段。页面也可以有一个二进制数据字段,它可能包含在另一个表中。如果文档本身有额外的数据,也许您也有一个文档表。

我没有在 Android 设备上使用过 SQLite 事务,但这似乎是解决线程安全问题的好方法。

关于java - android中基于文件的文档存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5527169/

相关文章:

java - 为什么人们仍然在 Java 中使用原始类型?

android - 服务类和广播类的实例化异常

java - 动态scaleType = centerCrop

Android - 让 ImageView 适合 ListView

c++ - 如何确保 SqLite 中的只读事务?

SQL 导入文件以更新表值

SQLITE - 插入问题

java - 将2位数字变成3位数字并将其反转

java - 仅在小程序上绘制一次字符串

java - 来自 spark 本地的 Azure 特定读取文件