嗨 我正在使用这段代码 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"
这就是您出现此错误的原因:
java.lang.IllegalArgumentException: File ............ contains a path separator
关于android - 将数据库从 Assets 文件夹复制到数据库文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6018166/