我在Android手机上运行一个小但关键的应用程序。它使用sqlite数据库作为其主要数据存储。经过一年多的近乎无瑕疵的运作,几天前由于臭名昭着的数据库磁盘映像格式错误而突然崩溃了#34;问题。这引起了一些尴尬,因为我无法访问系统来修复它几个小时。
我知道这种情况应该是very rare。但我现在正在编写一些代码,以便更好地从这种情况中恢复,因为我无法承受再次发生这种情况(这可能是由于手机的硬件,其中现在它可能会开始更频繁地发生 - 但我再也不能承受崩溃了。
但是,为了测试我的恢复代码,我需要生成相同的错误,由于一个愚蠢的错误,我丢失了创建问题的数据库副本。
我的问题是 - 我可以对sqlite数据库做些什么会导致"数据库磁盘映像格式错误"错误?然后我可以测试我的恢复代码。
答案 0 :(得分:2)
SQLite文档有一篇名为How To Corrupt an SQLite Database File
的文章SQLite数据库文件是普通的磁盘文件。这意味着任何 进程可以打开文件并用垃圾覆盖它。有 SQLite库无法阻止这一点。
如果您将垃圾数据写入文件,我想您可以实现您想要的目标
答案 1 :(得分:1)
你可以做到。
你也可以尝试别的东西:
只需创建一个文本文件。然后将其重命名为* .db文件并尝试在android中打开该文件,假设它是一个数据库文件。我希望你能得到同样的例外。