当连接真实设备时,如何在android studio中查看我的数据库文件?
设备监视器中的“我的数据”文件夹为空。当我将一个db放入内存时,我可以在sdcard0中看到,我可以访问该文件,但不能写入多行我是安卓新手~。这是我的密码当连接真实设备时,如何在android studio中查看我的数据库文件?,android,sqlite,android-studio,file-io,Android,Sqlite,Android Studio,File Io,设备监视器中的“我的数据”文件夹为空。当我将一个db放入内存时,我可以在sdcard0中看到,我可以访问该文件,但不能写入多行我是安卓新手~。这是我的密码 public static final String Query="CREATE TABLE "+UserConstruct.newUserinfo.TableName+" ("+UserConstruct.newUserinfo.UserName+" TEXT, "+UserConstruct.newUserinfo.Password+"
public static final String Query="CREATE TABLE "+UserConstruct.newUserinfo.TableName+" ("+UserConstruct.newUserinfo.UserName+" TEXT, "+UserConstruct.newUserinfo.Password+" TEXT,"+
UserConstruct.newUserinfo.FName+" TEXT, "+UserConstruct.newUserinfo.LName+" TEXT,"+UserConstruct.newUserinfo.ACode+" TEXT,"+UserConstruct.newUserinfo.AEmail+" TEXT);";
public DatabaseHelper(Context context)
{
super(context,DatabaseName,null,DatabaseVersion);
Log.e("Database operation","created or opened");
}
@Override
public void onCreate(SQLiteDatabase db)
{
db.execSQL(Query);
Log.e("Created","Table Created");
File f=new File("/data/data/com.example.future.buildingmonitoringsystem/databases/ptl2_DB.db");
FileInputStream fis=null;
FileOutputStream fos=null;
try
{
fis=new FileInputStream(f);
fos=new FileOutputStream("/mnt/sdcard/ptl2_DB.db");
while(true)
{
int i=fis.read();
if(i!=-1)
{fos.write(i);}
else
{break;}
}
fos.flush();
code for insertion in main class:
String UserName="admin"
Password = "password";
String FName="abc";
String LName="abc";
String ACode="1234";
String AEmail="sjn@gmail.com";
String TableName="htl_portal_user";
dbhelper=new DatabaseHelper(context);
sqlitedatabase=dbhelper.getWritableDatabase();
dbhelper.insert( UserName,Password,FName,LName,ACode,AEmail,sqlitedatabase);
Toast.makeText(getBaseContext(),"Data inserted",Toast.LENGTH_LONG).show();
dbhelper.close();
若您使用的是真实设备,则无法查看数据库。如果要查看数据库,必须导出数据库 导出数据库的代码如下所示:
btnexport.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
File f=new File("/data/data/YOUR_PACKAGE_NAME/databases/YOUR_DATABASE_NAME");
FileInputStream fis=null;
FileOutputStream fos=null;
try
{
fis=new FileInputStream(f);
fos=new FileOutputStream("/mnt/sdcard/DATABAASE_.db");
while(true)
{
int i=fis.read();
if(i!=-1)
{fos.write(i);}
else
{break;}
}
fos.flush();
Toast.makeText(getBaseContext(), "Database Export Successfully", Toast.LENGTH_LONG).show();
}
catch(Exception e)
{
e.printStackTrace();
Toast.makeText(getBaseContext(), "DB dump ERROR", Toast.LENGTH_LONG).show();
}
}
});
目前无法在Android Studio中查看您的数据库文件。您必须遵循以下步骤: 1.以编程方式在应用程序中创建Sqlite数据库文件 2.将其导出到您的计算机-其文件扩展名为.sqlite 3.要打开此文件,您需要一个mozilla插件-SQLite Manager-将此插件添加到您的mozilla浏览器中 4.现在,您可以在SQlite管理器中打开导出的文件-您甚至可以在SQlite管理器中执行许多数据库功能 要在android设备中导出db文件,请执行以下代码:
export.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
File f=new File("/data/data/YOUR_PACKAGE_NAME/databases/YOUR_DATABASE_NAME");
FileInputStream fis=null;
FileOutputStream fos=null;
try
{
fis=new FileInputStream(f);
fos=new FileOutputStream("/mnt/sdcard/DATABAASE_.db");
while(true)
{
int i=fis.read();
if(i!=-1)
{fos.write(i);}
else
{break;}
}
fos.flush();
Toast.makeText(getBaseContext(), "Database Export Successfully", Toast.LENGTH_LONG).show();
}
catch(Exception e)
{
e.printStackTrace();
Toast.makeText(getBaseContext(), "DB dump ERROR", Toast.LENGTH_LONG).show();
}
}
});
不能写超过1行?你的方法是什么?您试图执行的代码在哪里?这将很快被否决。您的设备是否已根目录?设备是否未根目录。请将您的代码张贴在您将在数据库中插入数据的位置。我已经这样做了,并且我可以在SD卡中看到数据库文件。问题是,当我在插入第二行后尝试访问数据时,应用程序被挂起然后关闭。[如果只有一行,我可以访问它。]完成此操作,现在我可以在SD卡中看到db。我可以写一行,也可以访问它。问题是插入第二行后无法访问数据库。当我尝试该应用程序时,挂起并停止。我的问题中添加了代码。