在Android中不能直接打开res/raw目录中的数据库文件,而需要在程序第一次启动时将该文件复制到手机内存或SD卡的某个目录中,然后再打开该数据库文件。
复制的基本方法是
1.使用getResources().openRawResource方法获得res/raw目录中资源的 InputStream对象,
2.然后将该InputStream对象中的数据写入其他的目录中相应文件中。
3. 在Android SDK中可以使用SQLiteDatabase.openOrCreateDatabase方法来打开任意目录中的SQLite数据库文件
基本思路,总结来说, 应该是这样子的。
先判断是用户是否有SD卡,(PS:虽然绝大部分用户手机是带SD卡的,但我们也必须考虑一下没有SD卡用户的感受)如果没有SD卡,则把数据库拷贝到用户的手机的data内存中,如果有SD卡,则把数据库拷贝到SD卡中。
当然更好的建议,应该是这样子的, 不是在程序中拷贝数据库,而是在程序首次运行时,代码建立数据库(在SD卡上或用户手机内存Data区),然后再住这个数据库中填充数据。