пытается экспортировать БД в SDCARD - PullRequest
0 голосов
/ 04 сентября 2011

Я довольно новичок в Android и пытаюсь экспортировать свою БД на SDCARD, чтобы я мог импортировать ее в другое приложение.

Есть предложения?

Спасибо заранее.

Ответы [ 2 ]

1 голос
/ 17 ноября 2011

Пример экспорта:

public void exportDB(){
    try {
        File sd = Environment.getExternalStorageDirectory();
        if (sd.canWrite()) {
            String currentDBPath = "data/data/com.mypack.myapp/databases/mydb.db";
            String backupDBPath = sd + "/filename.db";
            File currentDB = new File(currentDBPath);
            File backupDB = new File(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();
                }
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

Импорт очень похож на экспорт:

public void importDB(){
    try {
        File sd = Environment.getExternalStorageDirectory();
        if (sd.canWrite()) {
            String currentDBPath = sd + "/filename.db";
            String backupDBPath = "data/data/com.mypack.myapp/databases/mydb_2.db";
            File currentDB = new File(currentDBPath);
            File backupDB = new File(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();
                }
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}
0 голосов
/ 04 сентября 2011

Хотя это может быть не лучшим решением для того, что вы пытаетесь сделать, ваша база данных уже хранится в /data/data/your.package.name. Вам просто нужно загрузить его как файл и сохранить на SD-карту. Проверьте здесь код, который делает это:

http://www.screaming -penguin.com / узел / 7749

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...