Android从PC到设备复制sqlite数据库

时间:2015-05-23 13:15:30

标签: android database sqlite adb root

我想在我的Android项目中使用我的电脑上的数据库。要归档它,我必须将数据库复制到/data/data/xxx.xxx.xxx/databases文件夹中。我怎样才能做到这一点?我读过使用adb,但我认为你需要root才能访问/ data / data文件夹。有没有其他方法可以将数据库复制到app数据文件夹中?

1 个答案:

答案 0 :(得分:1)

将我们的数据库放在项目的assets文件夹中,并调用以下方法。

     public void copyDataBase() throws IOException{
             String package_name=context.getPackageName();
             String DB_PATH = "/data/data/"+package_name+"/databases/";
             String DB_NAME = "your_database_file_name";
            try {
                InputStream myInput = context.getAssets().open(DB_NAME);

                File dbFile=new File(DB_PATH);
                dbFile.mkdirs();

                String outputFileName = DB_PATH + DB_NAME;
                OutputStream myOutput = new FileOutputStream(outputFileName);

                byte[] buffer = new byte[1024];
                int length;

                while((length = myInput.read(buffer))>0){
                    myOutput.write(buffer, 0, length);
                }

                myOutput.flush();
                myOutput.close();
                myInput.close();
            } catch (Exception e) {
              e.printStackTrace();
            }
        }