我已经使用扩展SQLiteOpenHelper
和覆盖onCreate()
的默认方式以编程方式创建了一个sqlite数据库。这样,就可以在需要时即时创建数据库。
我想用sqlite浏览器在我的OS X机器上检查db文件的内容。我知道数据库文件的名称,但在设备上找不到它。我已经通过USB连接到了这个设备,并且用finder和terminal查找了一下,但是我就是找不到db文件。
在android设备上sqlite数据库的默认位置是什么?
发布于 2010-12-16 00:58:26
您可以找到已创建的名为<your-database-name>
的数据库
在……里面
//data/data/<Your-Application-Package-Name>/databases/<your-database-name>
使用文件资源管理器将其拉出,并将其重命名为在SQLiteExplorer中使用的.db3扩展名
使用DDMS的文件资源管理器导航到模拟器目录。
发布于 2012-10-31 16:55:39
为此,我所做的是
File f=new File("/data/data/your.app.package/databases/your_db.db3");
FileInputStream fis=null;
FileOutputStream fos=null;
try
{
fis=new FileInputStream(f);
fos=new FileOutputStream("/mnt/sdcard/db_dump.db");
while(true)
{
int i=fis.read();
if(i!=-1)
{fos.write(i);}
else
{break;}
}
fos.flush();
Toast.makeText(this, "DB dump OK", Toast.LENGTH_LONG).show();
}
catch(Exception e)
{
e.printStackTrace();
Toast.makeText(this, "DB dump ERROR", Toast.LENGTH_LONG).show();
}
finally
{
try
{
fos.close();
fis.close();
}
catch(IOException ioe)
{}
}
为此,您的应用程序必须具有访问SD卡的权限,并将以下设置添加到您的manifest.xml
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
这不是一种很好的方式,但很有效。
发布于 2014-07-10 20:01:12
上下文包含许多路径函数: Context.getXXXPath()
其中之一是android.content.Context.getDatabasePath(String dbname),它返回名为dbname的数据库的绝对路径。
Context ctx = this; // for Activity, or Service. Otherwise simply get the context.
String dbname = "mydb.db";
Path dbpath = ctx.getDatabasePath(dbname);
在本例中,返回的路径类似于:
/data/data/com.me.myapp/databases/mydb.db
请注意,如果使用SQLiteOpenHelper打开数据库,则会自动生成此路径。
https://stackoverflow.com/questions/4452538
复制相似问题