2017-02-08 2 views
-1

Я пытаюсь реализовать экспорт и импорт в своем приложении для Android, я попробовал ниже для экспорта, но он не работает и не дает никаких ошибок. Может кто-то, пожалуйста, помогите мне.Как экспортировать и импортировать базу данных sqlite в андроид-студии?

public static void export() throws IOException { 
    //Open your local db as the input stream 
    String inFileName = "/data/data/com.example.main/databases/myDB"; 
    File dbFile = new File(inFileName); 
    FileInputStream fis = new FileInputStream(dbFile); 

    String outFileName = Environment.getExternalStorageDirectory()+"/myDB"; 
    //Open the empty db as the output stream 
    OutputStream output = new FileOutputStream(outFileName); 
    //transfer bytes from the inputfile to the outputfile 
    byte[] buffer = new byte[1024]; 
    int length; 
    while ((length = fis.read(buffer))>0){ 
     output.write(buffer, 0, length); 
    } 
    //Close the streams 
    output.flush(); 
    output.close(); 
    fis.close(); 
} 

и я вызываю метод, как так:

try { 
    export(); 
} 
catch (IOException e) { 
    e.printStackTrace(); 
} 

Что я делаю неправильно? а также после экспорта, как я могу импортировать данные обратно?

+0

Пожалуйста, объясните, ** подробно **, что означает «он не работает». – CommonsWare

+0

Я не уверен, что именно не работает, данные не экспортируются. Я экспортирую() метод нажатием кнопки, поэтому, когда я нажимаю кнопку, ничего не происходит. Если бы у меня был Log.d в методе, который не был взят. –

+0

Откуда у вас этот код? Ты понимаешь это? Вы получаете трассировку стека в журнале? –

ответ

-1

Я считаю, что то, что вы требуете ответа здесь ... он работал для меня ..

copy database file to sdcard in android

Примечание: Это не должно быть ленивым ответ, просто я знаю, что это работает так что, надеюсь, это поможет плакату!

+0

Это тоже не работает, я знаю, что оба кода правильные, возможно, что-то другое может быть ошибочным? Я вызываю метод write, но не уверен, что они выполняются, поскольку журналы не печатаются, не могли бы вы дать мне указания относительно того, как вы получили его на работу, пожалуйста? –

+0

Hi Adam, Для меня я создал статическую функцию в определенном классе Утилиты, а затем сделал вызов. Что я сделал дополнительно, чтобы убедиться, что манифест содержит android.permission.WRITE_EXTERNAL_STORAGE. Есть ли шанс, что вы пропустили это? – greysqrl

+0

Спасибо, что вернулись. Я объявила разрешения в манифесте. –

Смежные вопросы