android - 将数据库从 Assets 文件夹复制到数据库文件夹

标签 android sqlite android-file

嗨 我正在使用这段代码 http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/ 它工作正常,除了我在这一行得到一个 java.io.filenotfoundexception

OutputStream myOutput = new FileOutputStream(outFileName);

我也试过这个

OutputStream myOutput = this.context.openFileOutput(outFileName, Context.MODE_PRIVATE);

我得到了

java.lang.IllegalArgumentException: File /data/data/com.kosherapp/databases/applicationdata contains a path separator

有人对我有什么想法吗? 提前致谢!

最佳答案

example使用 SQLiteAssetHelper 在较新的版本中,主类有一个变量 ASSET_DB_PATH :

public class SQLiteAssetHelper extends SQLiteOpenHelper {


    private static final String ASSET_DB_PATH = "databases";

因此,您不需要在从 SQLiteAssetHelper 扩展的类中指定数据库的路径,包括目录

//  private static final String DATABASE_NAME = "databases/myadtabase.db";
    private static final String DATABASE_NAME = "mydatabase.db";

所以与其拥有:

"databases/databases/mydatabase.db"

您将拥有正确的路径:

"databases/mydatabase.db"

enter image description here


这就是您出现此错误的原因:

java.lang.IllegalArgumentException: File ............ contains a path separator

关于android - 将数据库从 Assets 文件夹复制到数据库文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6018166/

相关文章:

android - ListFragment 不接受我的布局

android - 如何将viewPager的方向反转为从左到右的顺序?

android - 带有子项的 ListView。 (安卓)

ios - sqlite 中的更新行未更新

android.os.FileUriExposeException : file:///storage/emulated/0/test. txt 通过 Intent.getData() 暴露在应用程序之外

android - 选择一张图片并上传android

Android - Sharepoint 服务器应用程序通信

Sqlite 在日期时间上更新日期

java - 表名=空; NullPointerException 传送结果失败 ResultInfo{who=null, request=1, result=-1, data=Intent

Android:在外部存储中创建新文件时权限被拒绝