我正在尝试将我现有的数据库从我的内部存储复制到外部存储,但我有一个小问题。它说the file does not exist。这是我实际使用的内容:

将文件从内部存储复制到外部存储:

    private void copyFile(String src, String dst) throws IOException{
    FileChannel inChannel = new FileInputStream(src).getChannel();
    FileChannel outChannel = new FileOutputStream(dst).getChannel();
    try
    {
        inChannel.transferTo(0, inChannel.size(), outChannel);
    }
    finally
    {
        if (inChannel != null)
            inChannel.close();
        if (outChannel != null)
            outChannel.close();
    }
}

我是这样使用它的:
copyFile("/data/data/com.example.test/databases/database.sqlite","/sdcard/.Example/Data/database.sqlite");

但它不起作用,我很确定内部存储中的数据库在那里。

如果我在 copyFile "/sdcard/.Example/Data/" 中设置为目标文件夹,它将在 Data 中创建文件 .Example

我缺少什么建议?

最佳答案

使用它来将您的数据库复制到 SD 卡。

public void copyFile()
    {
        try
        {
            File sd = Environment.getExternalStorageDirectory();
            File data = Environment.getDataDirectory();

            if (sd.canWrite())
            {
                String currentDBPath = "\\data\\your.package.name\\databases\\dabase_name";
                String backupDBPath = "database_name";
                File currentDB = new File(data, currentDBPath);
                File backupDB = new File(sd, backupDBPath);

                if (currentDB.exists()) {
                    FileChannel src = new FileInputStream(currentDB).getChannel();
                    FileChannel dst = new FileOutputStream(backupDB).getChannel();
                    dst.transferFrom(src, 0, src.size());
                    src.close();
                    dst.close();
                }
                if(bool == true)
                {
                    Toast.makeText(Settings.this, "Backup Complete", Toast.LENGTH_SHORT).show();
                    bool = false;
                }
            }
        }
        catch (Exception e) {
            Log.w("Settings Backup", e);
        }
    }

关于Android 将数据库从内部存储复制到外部存储,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9066682/

10-11 04:49