Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 将SQLite db复制到存储设备以进行备份_Android_Sqlite_Backup - Fatal编程技术网

Android 将SQLite db复制到存储设备以进行备份

Android 将SQLite db复制到存储设备以进行备份,android,sqlite,backup,Android,Sqlite,Backup,我有一个应用程序,其中我正在更新我的SQLite db文件,但每次用户卸载此应用程序时,此db文件都会被删除,并在重新安装时创建一个新的db文件。我想在每次更新后将此db文件复制到micro SD卡,以便卸载后能够访问我的数据库 目标 每次更新数据库文件时复制 创建时说出text.db 现在我想把这个db文件复制到micro SD卡上 正在更新此数据库文件(应用程序数据库文件) 现在将此db文件复制并替换到micro sd卡 将数据库复制到SD卡的Sudo代码。要将其复制回去,只需反转流即可

我有一个应用程序,其中我正在更新我的SQLite db文件,但每次用户卸载此应用程序时,此db文件都会被删除,并在重新安装时创建一个新的db文件。我想在每次更新后将此db文件复制到micro SD卡,以便卸载后能够访问我的数据库

目标 每次更新数据库文件时复制

  • 创建时说出text.db
  • 现在我想把这个db文件复制到micro SD卡上
  • 正在更新此数据库文件(应用程序数据库文件)
  • 现在将此db文件复制并替换到micro sd卡

  • 将数据库复制到SD卡的Sudo代码。要将其复制回去,只需反转流即可

             public boolean copyDatabase() {
                String SDCardPath = Environment.getExternalStorageDirectory().getAbsolutePath();
                // Create the directory if neccesary.
                File directory = new File(SDCardPath  + <PATH TO SD-CARD SAVE LOCATION>);
                if (!directory.exists())
                        directory.mkdir();
    
    
                // Close the database before trying to copy it
                database.close();
    
                // Copy database to SD-card
                try {
                        InputStream mInput = new FileInputStream(<PATH TO DATABASE ON PHONE>);
                        OutputStream mOutput = new FileOutputStream(SDCardPath + <PATH TO SD-CARD SAVE LOCATION>);
    
                        byte[] buffer = new byte[1024];
                        int length;
                        while ((length = mInput.read(buffer)) > 0) {
                                mOutput.write(buffer, 0, length);
                        }
                        mOutput.flush();
                        mOutput.close();
                        mInput.close();
                } catch (Exception e) {
    
                }
    
                return database.open();
        }
    
    public boolean copyDatabase(){
    字符串SDCardPath=Environment.getExternalStorageDirectory().getAbsolutePath();
    //如有必要,创建目录。
    文件目录=新文件(SDCardPath+);
    如果(!directory.exists())
    mkdir()目录;
    //在尝试复制数据库之前,请先将其关闭
    close()数据库;
    //将数据库复制到SD卡
    试一试{
    InputStream mInput=新文件InputStream();
    OutputStream mOutput=新文件OutputStream(SDCardPath+);
    字节[]缓冲区=新字节[1024];
    整数长度;
    而((长度=mInput.read(缓冲区))>0){
    mOutput.write(缓冲区,0,长度);
    }
    mOutput.flush();
    mOutput.close();
    mInput.close();
    }捕获(例外e){
    }
    返回database.open();
    }