Intereting Posts
Как имитировать движение маршрута в реальном устройстве Android.widget.Switch – включение / выключение прослушивателя событий? Отображать дату / время UTC в дату / время в соответствии с текущим часовым поясом Кнопка Toggle с использованием двух изображений в разных состояниях Android, Drawable.createFromStream (is, srcname): что означает второй параметр? Многострочные уведомления / уведомления Android с более длинным текстом Позиция курсора EditText Использование глобальной обработки исключений с помощью «setUncaughtExceptionHandler» и «Toast» PopupWindow $ BadTokenException: Невозможно добавить окно – токен null недействителен Лучший способ сравнить даты в Android FirebaseAuth.getCurrentUser () return null DisplayName GetHeight () vs getLayoutParams (). Height Сделать новую активность за старой в процессе перехода Панель действий Кнопка «Назад» не работает Установите определенное приложение, чтобы игнорировать оптимизацию по коду в Android M

Скопировать файл базы данных на SDCard в android

Я получаю мой файл базы данных по этому коду

File dbFile=getDatabasePath("EdsysEyfsDB.db"); Log.v("database name checking", dbFile.toString()); 

Я хочу скопировать этот файл базы данных на SD-карту, чтобы я мог выполнить некоторую операцию для этого. Но я ничего не могу поделать. Нижеприведенный код используется для копирования на SD-карту

  if (dbFile.exists()) { InputStream inStream = new FileInputStream(dbFile); String file = Environment.getExternalStorageDirectory().getPath() +"/" + "database.db"; Log.d("file name checking in dbFilecondition", file); FileOutputStream fs = new FileOutputStream(file); byte[] buffer = new byte[1444]; while ((byteread = inStream.read(buffer)) != -1) { bytesum += byteread; fs.write(buffer, 0, byteread); } inStream.close(); fs.close(); } 

Но я не вхожу в это условие. Имя файла базы данных поступает правильно на LogCat. Я уже даю разрешение на чтение и запись файла.

Solutions Collecting From Web of "Скопировать файл базы данных на SDCard в android"

Попробуйте эту надежду, это поможет вам

 public void exportDatabse(String databaseName) { try { File sd = Environment.getExternalStorageDirectory(); File data = Environment.getDataDirectory(); if (sd.canWrite()) { String currentDBPath = "//data//"+getPackageName()+"//databases//"+databaseName+""; String backupDBPath = "backupname.db"; 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(); } } } catch (Exception e) { } } 

Как позвонить

 exportDatabse("YourDBName"); 

ЗАМЕТКА :

Не забудьте добавить разрешение на запись во внешнее хранилище с помощью <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> , иначе sd.canWrite () будет false.