将数据库从资产文件夹复制到数据库文件夹
你好 我正在使用这段代码 http://www.reigndesign.com/博客/在android应用程序中使用您自己的sqlite数据库/ 它工作正常,除了我在这一行得到一个 java.io.filenotfoundException
OutputStream myOutput = new FileOutputStream(outFileName);
我也尝试了这个
OutputStream myOutput = this.context.openFileOutput(outFileName, Context.MODE_PRIVATE);
,我得到了
java.lang.IllegalArgumentException: 文件 /data/data/com.kosherapp/databases/applicationdata 包含路径分隔符
有人对我有什么想法吗? 提前致谢!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
这示例 使用 SQLiteAssetHelper 在新版本中,主类有一个变量 ASSET_DB_PATH :
因此您不需要在从
SQLiteAssetHelper< 扩展的类中指定/code> 数据库的路径,包括目录
,而不是:
因此,您将拥有正确的路径:
这就是出现此错误的原因:
This example uses SQLiteAssetHelper in the newer version the main class has a variable ASSET_DB_PATH :
So you don´t need to specify in your class that extends from
SQLiteAssetHelper
the path of your database including the directorySo instead of having:
you will have the correct path:
Thats the reason for what you have this error:
根据 文档,您提供给
openFileOutput
的名称不能包含路径分隔符。它必须只是一个文件名(这是为了防止您尝试在应用程序的沙箱之外写入)。查看您的错误消息:尝试使用“applicationdata.db”本身作为文件名。
As per the docs, The name you supply to
openFileOutput
can't contain a path seperator. It must be a file name only (this is to prevent you from attempting to write outside of your application's sandbox). Looking at your error message:Try using "applicationdata.db" as the file name by itself.
Android 1.6 不需要您指定 URL,只需提供数据库名称即可开始使用。 :)
Android 1.6 doesn't need you to specify the URL, just give name of database and your are all set to go. :)