使用Eclipse+Android做了一个关于SQLite的例子,在网上查找了一下,发现程序相应的SQLite数据库通过DDMS下的File Explore可以在相应的程序下的Database中。
我现在的想法有两个:
1、程序编译成APK,在手机上安装后,添加数据后我想将相应的SQLite数据库拷贝到电脑上;
2、跟1相反,想将电脑上的SQLite数据库复制到手机上。
查了一些资料,好像说只能通过adb命令或ddms环境下实现导入/导出;请问一下还有其他方法吗?

解决方案 »

  1.   

    inputstream outputstream也行...
      

  2.   

    将pc的db导入到手机中:
    首先要把你的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;
      

  3.   

    让用户拷贝到SD卡上,然后再写个界面,让用户选择文件存储路径,从SD卡中将数据倒腾过去不就行了啊。