15

在 Android 中,在 SQLite 中输入数据比在 .txt 文件中使用更多的时间和更多的代码行。

将数据保存为 .txt 并使用 FileReader 方便获取数据。

使用 SQLite 而不是 File 有什么优势?

4

2 回答 2

38

SQLite 数据库相对于文件存储的优势

  • 如果您有相关的数据,常规文件不会让您表明它们的关系;SQLite 数据库可以。
  • SQLite 允许您以结构化的方式存储数据。
  • SQLite 具有更高的性能。
  • 还可以查询 SQLite 数据库,并且数据检索更加健壮。
  • android.database 和 android.database.sqlite 包提供了更高性能的替代方案,其中源兼容性不是问题。
  • 在 Android 中创建的 Android 数据库仅对创建它们的应用程序可见
  • 没有文件解析和生成代码来编写和调试。
  • 可以使用强大的 SQL 查询访问和更新内容,大大降低了应用程序代码的复杂性。
  • 在以后的版本中为新功能扩展文件格式就像向现有表中添加新表或新列一样简单。
  • 可能以其他方式存储为“文件堆”的不同内容可以封装到单个磁盘文件中。
  • 可以使用第三方工具查看内容。
  • 应用程序文件可跨所有操作系统、32 位和 64 位以及大端和小端架构移植。
  • 应用程序只需要加载它需要的数据,而不是读取整个应用程序文件并在内存中保存完整的解析。启动时间和内存消耗减少。
  • 小的编辑只会覆盖文件中发生变化的部分,而不是整个文件,从而提高性能并减少 SSD 驱动器的磨损。
  • 内容会持续自动更新,因此在发生电源故障或崩溃时不会丢失任何工作。
  • 应用程序可以利用 SQLite 中内置的全文搜索和 RTREE 功能。
  • 性能问题通常可以使用 CREATE INDEX 解决,而不是重新设计、重写和重新测试应用程序代码。
  • 可能用不同编程语言编写的程序联合都可以访问同一个应用程序文件,而没有兼容性问题。
  • 多个进程可以附加到同一个应用程序文件,并且可以在不相互干扰的情况下进行读写。
  • 可以使用触发器实现跨会话撤消/重做。
  • 在许多常见情况下,从 SQLite 数据库加载内容比从单个文件加载内容要快。有关其他信息,请参阅内部与外部 BLOB。
  • 存储在 SQLite 数据库中的内容更有可能在未来几十年内恢复,即使原始应用程序的所有痕迹都已丢失。数据比代码寿命更长。
于 2013-11-13T05:52:29.557 回答
10

立即浮现在脑海中的主要原因是 SQLite 为您提供的,而一个简单的文件却没有:

请注意,尝试通过自己使用平面文件来解决任何这些问题将开始进入数据库领域——但您当然真的不想自己编写那种东西。

于 2013-11-13T05:50:23.210 回答