Android 之 将RAW资源文件写入SD卡工具类
16lz
2021-01-23
阅读更多
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;}}
- coptFileToSD.rar (1.5 MB)
- 下载次数: 12
更多相关文章
- Android 上传文件[转]
- android 之 读取本地json文件返回string
- android中利用pull解析xml文件
- Memory Analyzer(MAT)打开android eclipse Dump内存文件出现 Unkno
- Android文件读写包含SDCard
- android 按纽状态配置文件
- Android Dialog 创建上下文菜单
- Android ContextMenu上下文菜单