使用Eclipse+Android做了一个关于SQLite的例子,在网上查找了一下,发现程序相应的SQLite数据库通过DDMS下的File Explore可以在相应的程序下的Database中。
我现在的想法有两个:
1、程序编译成APK,在手机上安装后,添加数据后我想将相应的SQLite数据库拷贝到电脑上;
2、跟1相反,想将电脑上的SQLite数据库复制到手机上。
查了一些资料,好像说只能通过adb命令或ddms环境下实现导入/导出;请问一下还有其他方法吗?
我现在的想法有两个:
1、程序编译成APK,在手机上安装后,添加数据后我想将相应的SQLite数据库拷贝到电脑上;
2、跟1相反,想将电脑上的SQLite数据库复制到手机上。
查了一些资料,好像说只能通过adb命令或ddms环境下实现导入/导出;请问一下还有其他方法吗?
首先要把你的db拷贝程序到assets文件下
try {
InputStream is = this.m_Ctx.getAssets().open("Train.zip");
java.util.zip.ZipInputStream inZip = new java.util.zip.ZipInputStream(
is);
java.util.zip.ZipEntry zipEntry;
String szName = ""; while ((zipEntry = inZip.getNextEntry()) != null) {
szName = zipEntry.getName(); if (zipEntry.isDirectory()) { // get the folder name of the widget
szName = szName.substring(0, szName.length() - 1);
java.io.File folder = new java.io.File(DATABASE_PATH
+ java.io.File.separator + szName);
folder.mkdirs(); } else {
File dir = new File(DATABASE_PATH);
if (!dir.exists())
dir.mkdir();
if (!(new File(DATABASE_PATH + java.io.File.separator
+ szName)).exists()) {
// get the output stream of the file
java.io.FileOutputStream out = new java.io.FileOutputStream(
DATABASE_PATH + java.io.File.separator + szName);
int len;
byte[] buffer = new byte[1024];
// read (len) bytes into buffer
while ((len = inZip.read(buffer)) != -1) {
// write (len) byte from buffer at the position 0
out.write(buffer, 0, len);
out.flush();
}
out.close();
}
}
}// end of while inZip.close();
is.close();
return DATABASE_PATH + java.io.File.separator + szName;
} catch (Exception err) {
err.getStackTrace();
}
return null;