package com.sun.coptfiletosd;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.os.Environment;import android.util.Log;/** * 工具类 , 用于将RAW 目录下的文件写入到数据库中 *  * @author Administrator *  */public class SDUtils {private String file; // 设置文件存放路径private String fileName; // 存放文件名称private Context context; // 获取到Context 上下文private int rawid; // 资源文件ID ,需要COPY 的文件private String DATABASE_PATH = "";private String DATABASE_NAME = "";public String getFile() {return file;}public void setFile(String file) {this.file = file;this.DATABASE_PATH = Environment.getExternalStorageDirectory().getAbsolutePath() + "/" + file;}public String getFileName() {return fileName;}public void setFileName(String fileName) {this.fileName = fileName;this.DATABASE_NAME = fileName;}public int getRawid() {return rawid;}public void setRawid(int rawid) {this.rawid = rawid;}public SDUtils() {}/** *  * @param file *            文件夹例如: aa/bb * @param fileName *            文件名 * @param context *            上下文 * @param rawid *            资源ID */public SDUtils(String file, String fileName, Context context, int rawid) {super();this.file = file;this.fileName = fileName;this.context = context;this.rawid = rawid;this.DATABASE_PATH = Environment.getExternalStorageDirectory().getAbsolutePath() + "/" + file;this.DATABASE_NAME = fileName;}/** * 将文件复制到SD卡,并返回该文件对应的数据库对象 *  * @return * @throws IOException */public SQLiteDatabase getSQLiteDatabase() throws IOException {// 首先判断该目录下的文件夹是否存在File dir = new File(DATABASE_PATH);String filename1 = DATABASE_PATH + "/" + DATABASE_NAME;if (!dir.exists()) {// 文件夹不存在 , 则创建文件夹dir.mkdirs();}// 判断目标文件是否存在File file1 = new File(dir, DATABASE_NAME);if (!file1.exists()) {Log.i("msg", "没有文件,开始创建");file1.createNewFile(); // 创建文件}Log.i("msg", "准备开始进行文件的复制");// 开始进行文件的复制InputStream input = context.getResources().openRawResource(rawid); // 获取资源文件raw// 标号try {FileOutputStream out = new FileOutputStream(file1); // 文件输出流、用于将文件写到SD卡中// -- 从内存出去byte[] buffer = new byte[1024];int len = 0;while ((len = (input.read(buffer))) != -1) { // 读取文件,-- 进到内存out.write(buffer, 0, len); // 写入数据 ,-- 从内存出}input.close();out.close(); // 关闭流SQLiteDatabase sqlitDatabase = SQLiteDatabase.openOrCreateDatabase(filename1, null);return sqlitDatabase;} catch (Exception e) {e.printStackTrace();}return null;}}

更多相关文章

  1. NPM 和webpack 的基础使用
  2. 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程
  3. 读取android手机流量信息
  4. android 使用html5作布局文件: webview跟javascript交互
  5. Android(安卓)多媒体扫描过程(Android(安卓)Media Scanner Proces
  6. android“设置”里的版本号
  7. Android开发环境搭建
  8. Android(安卓)Resource介绍和使用
  9. 2014.01.21 ——— android 关联android-support源码

随机推荐

  1. Android(安卓)API Guides---Settings
  2. Android(安卓)Studio系列教程二--基本设
  3. Android(安卓)Looper And Hander 机制剖
  4. Android(安卓)过度渲染及优化方法--3D效
  5. Apk脱壳圣战之---脱掉“爱加密”的壳
  6. Android(安卓)API Guides---Adding Recen
  7. BitmapFactory类的decodeStream方法在网
  8. Android新手入门2016(4)--Android(安卓)SDK
  9. Android(安卓)studio 引入简单的高德地图
  10. Android实现滑动效果