我正处于 Android 笔记应用程序的早期阶段,我希望有人能为我指出一个很好的存储笔记数据的解决方案。
理想情况下,我希望有一个解决方案:
- 每个笔记文档都是一个单独的文件(用于 dropbox 同步)
- 一条笔记可以由多页组成
- 笔记页可以有二进制数据(比如图片)
- 可以加载单个页面,而无需将整个文档解析到内存中
- 线程安全:多个读/写可以同时发生。
XML 不可用(至少对于整个文件),因为我没有一次提取单个页面的好方法。我考虑过使用 zip 文件,但(尤其是在压缩时)我认为它们也会卡住加载整个文件。
似乎应该有一个 Java 库可以执行此操作,但我的 google-fu 却让我失望了。我能想到的唯一其他选择是为每个笔记制作一个单独的 sqlite 数据库。
有人知道解决这个问题的好方法吗?谢谢!
最佳答案
似乎关系数据库可以在这里工作。您只需要稍微尝试一下架构。
也许可以制作一个页面表,其中每一页都包括,比如说,它所属的文档的一个字段和它在文档中的顺序的一个字段。页面也可以有一个二进制数据字段,它可能包含在另一个表中。如果文档本身有额外的数据,也许您也有一个文档表。
我没有在 Android 设备上使用过 SQLite 事务,但这似乎是解决线程安全问题的好方法。
关于java - android中基于文件的文档存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5527169/