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

标签 android database sqlite adb root

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

最佳答案

将我们的数据库放在项目的 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();
            }
        }

关于Android将sqlite数据库从PC复制到设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30413127/

相关文章:

java - 循环加载许多图像时抛出 Resources.NotFoundException

php - 当数据库在另一台机器上时是否值得使用 MYSQLI_CLIENT_COMPRESS?

php - mysql查询中的mysql查询

ruby-on-rails - 无法在 Sqlite3 中添加默认值为 NULL 的 NOT NULL 列

java - 如何将动态文本逐行放置?

java - 如何从其他设备获取您的应用程序发生的错误?

android - DataAdapter 类型未定义方法 getActivity()

database - “UITableView”无法从其数据源获取单元格

Python:在SQL数据库中插入元组列表并添加自动递增的id字段

android - 某些表的动态数据库备份