java导出sqlite_java – 在Android上简单导出和导入SQLite数据库

我在SQLiteOpenHelper中使用这个代码在我的一个应用程序中导入数据库文件。

编辑:我粘贴我的FileUtils.copyFile()方法到问题。

SQLiteOpenHelper

public static String DB_FILEPATH = "/data/data/{package_name}/databases/database.db";

/**

* Copies the database file at the specified location over the current

* internal application database.

* */

public boolean importDatabase(String dbPath) throws IOException {

// Close the SQLiteOpenHelper so it will commit the created empty

// database to internal storage.

close();

File newDb = new File(dbPath);

File oldDb = new File(DB_FILEPATH);

if (newDb.exists()) {

FileUtils.copyFile(new FileInputStream(newDb), new FileOutputStream(oldDb));

// Access the copied database so SQLiteHelper will cache it and mark

// it as created.

getWritableDatabase().close();

return true;

}

return false;

}

FileUtils

public class FileUtils {

/**

* Creates the specified toFile as a byte for byte copy of the

* fromFile. If toFile already exists, then it

* will be replaced with a copy of fromFile. The name and path

* of toFile will be that of toFile.

*

* Note: fromFile and toFile will be closed by

* this function.

*

* @param fromFile

* - FileInputStream for the file to copy from.

* @param toFile

* - FileInputStream for the file to copy to.

*/

public static void copyFile(FileInputStream fromFile, FileOutputStream toFile) throws IOException {

FileChannel fromChannel = null;

FileChannel toChannel = null;

try {

fromChannel = fromFile.getChannel();

toChannel = toFile.getChannel();

fromChannel.transferTo(0, fromChannel.size(), toChannel);

} finally {

try {

if (fromChannel != null) {

fromChannel.close();

}

} finally {

if (toChannel != null) {

toChannel.close();

}

}

}

}

}

如有必要,请不要忘记删除旧的数据库文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值