android开发:SD卡,Assets目录,data/data目录下,数据库的复制操作
来源:互联网 发布:石头纹理算法 编辑:程序博客网 时间:2024/05/20 15:40
工具类,可以直接放在项目中使用
实现SD卡,Assets目录,data/data目录下,数据库的复制
import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.util.ArrayList;import java.util.List;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.util.Log;/** * SD卡,Assets目录,data/data目录下,数据库的复制操作 * */public class DBUtil {private static final String TAG = DBUtil.class.getSimpleName();/** * 是否存在SYS_DB_NAME * */public static boolean dbExists(Context context) {File file = context.getDatabasePath(Constant.SYS_DB_NAME);return file.exists();}/** * 导入SYS_DB_NAME * */public static void importDatabase(Context context) throws IOException {File file = context.getDatabasePath(Constant.SYS_DB_NAME);if (!file.getParentFile().exists()) {file.getParentFile().mkdirs();}file.createNewFile();InputStream is = context.getAssets().open(Constant.SYS_DB_NAME);OutputStream os = new FileOutputStream(file);byte[] buffer = new byte[1024 * 10];int len = -1;while ((len = is.read(buffer)) != -1) {os.write(buffer, 0, len);}is.close();os.close();}/** * 从SD卡导入数据库 * */public static List<String> importSDcardDB(Context context)throws IOException {List<String> result = new ArrayList<String>();// 打开文件/mnt/sdcard/项目目录/databasesFile dir = new File(android.os.Environment.getExternalStorageDirectory()+ File.separator+ context.getResources().getString(R.string.app_name)+ File.separator + Constant.DB_PATH);File codelibDBFile = new File(dir, Constant.SYS_DB_NAME);File userDBFile = new File(dir, DBHelper.DATABASE_NAME);// 判断是否存在文件目录,不存在则创建if (codelibDBFile.exists()) {copyDB(context, codelibDBFile,context.getDatabasePath(Constant.SYS_DB_NAME));} else {result.add(Constant.SYS_DB_NAME);}if (userDBFile.exists()) {copyDB(context, userDBFile,context.getDatabasePath(DBHelper.DATABASE_NAME));} else {result.add(DBHelper.DATABASE_NAME);}return result;}/** * 向SD卡导出数据库 * */public static void exportSDcardDB(Context context) throws IOException {// 获取扩展存储设备的文件目录File SDFile = android.os.Environment.getExternalStorageDirectory();// 打开文件目录File toDir = new File(SDFile.getPath() + File.separator+ context.getResources().getString(R.string.app_name)+ File.separator + Constant.DB_PATH);// 判断是否存在文件目录,不存在则创建if (!toDir.exists()) {toDir.mkdirs();}if (toDir.exists()) {// 存在文件目录 copyDB(context, context.getDatabasePath(DBHelper.DATABASE_NAME),new File(toDir, DBHelper.DATABASE_NAME));}}/** * 复制数据库 * */private static void copyDB(Context context, File fromDB, File toDB)throws IOException {// 判断是否存在文件if (toDB.exists()) {// 已经存在文件toDB.delete();}// 创建新的dbSQLiteDatabase s = SQLiteDatabase.openOrCreateDatabase(toDB, null);// // 复制asseets中的db文件// InputStream myInput = context.getAssets().open(Constant.SYS_DB_NAME);InputStream myInput = new FileInputStream(fromDB);String outFileName = toDB.getPath();OutputStream myOutput = new FileOutputStream(outFileName);byte[] buffer = new byte[1024];int length;while ((length = myInput.read(buffer)) > 0) {myOutput.write(buffer, 0, length);}myOutput.flush();myOutput.close();myInput.close();s.close();}}
0 0
- android开发:SD卡,Assets目录,data/data目录下,数据库的复制操作
- Android复制Assets目录下的文件到/data/data目录
- assets里面的apk 复制到sd上 或者data目录下
- 拷贝assets下的数据库至data/data目录及使用SQLiteDatabase 访问
- assets文件夹下文件目录复制到SD卡下
- android从assets目录复制到sd卡
- android从assets目录复制文件到sd卡
- Android复制Assets目录下的文件到指定目录
- Android复制assets目录下的文件到另一个目录
- 将android工程中assets中的文本文件复制到指定的SD卡目录中
- webview如何打开assets和/data/data/pkg目录下的html文件
- Android data/data目录
- Android复制asset目录的文件到SD卡下
- Android复制asset目录的文件到SD卡下
- Android 对data/data/(your packagename)目录下的数据读写、删除操作
- Android 中 Assets目录下 文件或文件夹的复制
- Android中对assets目录下数据库操作
- data/data/目录下的私有数据
- 输出一个数的全排列
- Windows7:Visual Studio 2008试用版的评估期已经结束解决方法
- 【HDU】5016 Mart Master II 点分治
- 可扩展类库强制取消异步调用
- 嵌入式 probe()函数是什么时候被调用,设备和驱动是怎么联系起来的
- android开发:SD卡,Assets目录,data/data目录下,数据库的复制操作
- 【转】一个华为人辞职创业后的几个反思
- 根据模板生成Excel
- Debian7离线升级bash漏洞修复方法
- hibernate的addEntity的用法,普通sql查询得到对象list
- 很不错的心里测试
- hadoop实战
- oracle系统视图总结
- 浏览器缓存url请求