Выполните шаги 1. Скопируйте базу данных из внутреннего хранилища и создайте тот же файл имени БД во внешнем хранилище
2. Теперь, после проверки, существует ли внешнее хранилище, скопируйте базу данных и перейдите во внутреннее хранилище
copyDataBseToExternal ( internalDBFilePath, DB_NAME, ExternalDBFilePath)
copyDataBseFromExternal (ExternalDBFilePath, DB_NAME, InternalDbFilePath)
// Копировать базу данных с SD-карты во внутреннюю папку приложения
веселое копирование DataBataFrom: inputFile: String, outputPath: String)
{
var ins: InputStream? = null
var out: OutputStream? = null
try {
//create output directory if it doesn't exist
val dir = File(outputPath)
if (!dir.exists()) {
dir.mkdirs()
}
ins = FileInputStream(inputPath)
out = FileOutputStream(outputPath)
val buffer = ByteArray(1024)
var length = ins.read(buffer)
// read = `in`.read(buffer)
while (length > 0) {
//out.write(buffer, 0, read)
out.write(buffer, 0, length)
length = ins.read(buffer)
}
ins.close()
// write the output file
out.flush()
out.close()
// delete the original file
// File(inputPath + inputFile).delete()
} catch (fnfe1: FileNotFoundException) {
Log.e("tag", fnfe1.message)
} catch (e: Exception) {
Log.e("tag", e.message)
}
}
publi c fun copyDataBseToExternal (inputPath: String, inputFile: String, outputPath: String)
{
var ins: InputStream? = null
var out: OutputStream? = null
try {
//create output directory if it doesn't exist
val dir = File(outputPath)
if (!dir.exists()) {
dir.mkdirs()
}
ins = FileInputStream(inputPath)
out = FileOutputStream(outputPath + "/" + inputFile)
val buffer = ByteArray(1024)
var length = ins.read(buffer)
// read = `in`.read(buffer)
while (length > 0) {
//out.write(buffer, 0, read)
out.write(buffer, 0, length)
length = ins.read(buffer)
}
ins.close()
// write the output file
out.flush()
out.close()
// delete the original file
// File(inputPath + inputFile).delete()
} catch (fnfe1: FileNotFoundException) {
Log.e("tag", fnfe1.message)
} catch (e: Exception) {
Log.e("tag", e.message)
}
}