`
1140566087
  • 浏览: 560162 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
博客专栏
2c4ae07c-10c2-3bb0-a106-d91fe0a10f37
c/c++ 入门笔记
浏览量:18563
3161ba8d-c410-3ef9-871c-3e48524c5263
Android 学习笔记
浏览量:314512
Group-logo
J2ME 基础学习课程集
浏览量:18795
A98a97d4-eb03-3faf-af96-c7c28f709feb
Spring 学习过程记录...
浏览量:17592
社区版块
存档分类
最新评论

Android 之 将RAW资源文件写入SD卡工具类

阅读更多
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;

	}

}
分享到:
评论

相关推荐

    Android文件读取.rar

    - Android设备通常有内部存储和外部存储(如SD卡)。访问外部存储需要权限`WRITE_EXTERNAL_STORAGE`和`READ_EXTERNAL_STORAGE`。 - **写入外部存储**: ```java File externalFile = new File(Environment....

    android 下读取framebuffer的内容

    这将把framebuffer的内容保存到SD卡的`123.raw`文件中。 5. **添加文件头**:为了能够用常规图像查看器打开`.raw`文件,需要添加像JPEG或PNG那样的文件头。对于`.bmp`格式,你需要在文件开头添加Bitmap文件头,...

    java_android_文件管理工具类的标准代码

    一些工具类代码块的标准代码,包括但不限于: 创建目录 删除文件(若为目录,则递归删除子目录和文件) 获取文件大小,单位为byte(若为目录,则包括所有子目录和文件) 保存Bitmap到指定目录 判断某目录下文件是否...

    RAW格式修复软件

    1. 兼容性:确保软件能够支持你的设备类型(如硬盘、SD卡、USB驱动器等)以及文件系统(如Fat32)。 2. 深度扫描:强大的扫描引擎能够深入查找和恢复受损的文件。 3. 文件预览:在恢复前提供预览功能,确认文件是否...

    存储卡数据恢复 恢复照片超好用

    标题中的“存储卡数据恢复 恢复照片超好用”表明了本文将主要讨论如何使用特定工具,如Sandisk RescuePro,来恢复存储卡上的照片和其他数据。描述进一步指出,这款工具能够对存储卡的数据进行分类恢复,并且特别擅长...

    新版Android开发教程.rar

    MicroSD 卡 ; QWERTY 全键盘; 310 万像素摄像头。 流媒体 支持视频格式: H.264 、流媒体、 3GPP 、 MPEG4 和 Codec 3GP ;支持音频格式: MP3 、 AAC 、 AAC+ 、 W MA 、 MPEG4 、 WAV 、 MIDI 、 REAL 、 AUDIO ...

    microlog4.rar

    5. **自定义输出**:如果你需要将日志保存到SD卡,需要在`microlog.properties`中指定输出目标为文件,并配置文件路径。例如: ``` log.appender.file=true log.appender.file.path=/sdcard/yourapp/log.txt ```...

    很强悍的相机卡,存数卡数据恢复软件

    这款软件具有高度的专业性,能够恢复在各种类型的内存卡上误删的照片,不仅限于相机卡,还包括手机、行车记录仪、无人机等设备上的存储卡。它的工作原理是通过扫描内存卡的扇区,寻找被标记为已删除但实际上数据仍...

    手机内存卡修复软件

    内存卡修复软件是一种专门针对手机或数码设备中内存卡出现故障时使用的工具,它能够帮助用户解决内存卡无法读取、文件丢失、格式化错误等问题。这类软件通常包含多种功能,如扫描、检测、修复、恢复等,以帮助恢复...

    数据恢复软件 恢复被删文件

    数据恢复软件是一种专门设计用于从硬盘驱动器、USB闪存盘、SD卡等存储设备中恢复已删除或丢失的文件的应用程序。当文件被误删或者由于硬件故障、病毒感染等原因而丢失时,这类软件可以尝试通过各种算法和技术来恢复...

    世纪情缘数据大师

    其次,该软件支持多种类型的存储设备,包括硬盘驱动器、SSD固态硬盘、USB闪存盘、SD卡、数码相机存储卡等。这意味着无论数据丢失发生在哪类存储介质上,世纪情缘数据大师都有可能帮你找回。 在文件类型支持方面,...

    U盘修复 7DataCard_xdowns

    7DataCard Recovery是一款功能强大的数据恢复工具,专为存储卡、U盘、SD卡等移动存储设备设计,能够帮助用户恢复因误删除、格式化、病毒感染或其他原因丢失的文件。 【描述】"7DataCard_xdowns U盘修复"暗示了用户...

    最牛的照片恢复程序带注册

    7. **兼容性**:优秀的照片恢复工具应支持多种类型的存储设备,包括硬盘、SSD、USB驱动器、数码相机的存储卡等,并兼容各种照片格式,如JPEG、PNG、RAW等。 8. **备份策略**:为了避免数据丢失,最佳实践是定期备份...

    Zero Assumption Digital Image Recovery

    - **广泛支持**:支持多种类型的存储设备,包括SD卡、CF卡、USB驱动器等,并兼容多种图像格式,如JPEG、TIFF、RAW等。 - **预览功能**:在恢复前,用户可以预览找到的图像,确保文件的完整性,避免恢复无用的...

    Win32DiskImager

    Win32DiskImager是一款简洁而实用的软件,主要功能是用于读写raw镜像文件到USB驱动器或SD卡上。它支持多种操作系统,包括Windows,使得非Linux用户也能方便地进行Kali Linux的安装。这款工具的使用非常直观,即便是...

    可能是最好用的数据恢复软件

    这款软件旨在帮助用户从各种存储设备中找回丢失的数据,包括硬盘驱动器、USB闪存盘、SD卡、移动电话以及数码相机等。 易我数据恢复软件的核心功能包括深度扫描、快速扫描和丢失分区查找。快速扫描适用于最近删除...

    91照片恢复

    除了基本的照片恢复功能,一些高级的恢复工具可能还具备额外的特性,例如支持多种文件格式(JPEG、PNG、RAW等)、深度扫描模式(用于查找更难找到的文件)以及预览功能(在恢复前确认照片内容)。"91照片恢复"可能也...

Global site tag (gtag.js) - Google Analytics