

Realmを使用していますが、データベースデータのバックアップ・リストアをしたいと思っています。  
この方法が正しいかわかりませんが、以下のようなコードで試みています。しかしエラーが出てしまいます。

[code]

    W/zygote: Got a deoptimization request on un-deoptimizable method void java.io.FileOutputStream.open0(java.lang.String, boolean)
    W/System.err: java.io.FileNotFoundException: /storage/emulated/0/test.realm (Permission denied)
    
[/code]

ファイルアクセスの権限は許可しています。  
また次の一文もManifastに記述しています。

[code]

    uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
    
[/code]

リストアは下記ソースの逆手順で、と考えていますが、そもそもrealmを使用している状態で上書いていいのか？とも思いますがどうなんでしょうか。

ほかに何が必要なのでしょうか。  
ご指導いただければ幸いです。よろしくお願いいたします。

[code]

    //コピー元ファイル
    File inputFile = new File(getFilesDir(), "default.realm");
    //コピーする
    fileCopy(context , inputFile);
    
    public static void fileCopy(Context context , File inputFile) {
    
        try {
            //Fileオブジェクトを生成する
            FileInputStream fis = new FileInputStream(inputFile);
            FileOutputStream fos = new FileOutputStream(Environment.getExternalStorageDirectory().getPath() + "/test.realm");
    
            //入力ファイルをそのまま出力ファイルに書き出す
            byte buf[] = new byte[256];
            int len;
    
            while ((len = fis.read(buf)) != -1) {
                fos.write(buf, 0, len);
            }
    
            //終了処理
            fos.flush();
            fos.close();
            fis.close();
    
            System.out.println("コピーが完了しました。");
    
        } catch (IOException ex) {
            //例外時処理
            System.out.println("コピーに失敗しました。");
            ex.printStackTrace();
        }
    }
    
[/code]


CC BY-SA 3.0
2018-03-24T13:43:49.060
42635
2018-03-28T13:06:53.383
2018-03-28T13:06:53.383
3060
10845
question
android java realm
Java Realmのファイルをバックアップ・リストアしたい