Android 如何访问Assets文件夹里面的资源

Android 读取assets的数据库文件

是先把assets目录中的数据库文件拷贝到app的相应目录中,然后再对这个数据库文件进行读写。

public class DBManger { 
 
	public static final String DB_NAME = "festival.db";//数据库
	public static final String PACKAGE_NAME = "com.example.viewpager_homework2";
	// 在手机存放数据库的位置
	public final String DB_PATH = "/data"
			+ Environment.getDataDirectory().getAbsolutePath() + "/"
			+ PACKAGE_NAME + "/" + DB_NAME; // 在手机里存放数据库的位置
  
	private SQLiteDatabase database;
	private Context context;
  
	public DBManger(Context context) {
		super();
		this.context = context;
	}
  
	public void openDatabase() { 
		this.database = this.openDatabase(DB_PATH); 
	}
	
	public Cursor infor(String string){		
		SQLiteDatabase db = this.openDatabase(DB_PATH);		
		return db.rawQuery("select * from smstb where fes_id = "+string, null);		
	} 
 
	private SQLiteDatabase openDatabase(String dbfile) {
		try {
            // 判断数据库文件是否存在,若不存在则执行导入,否则直接打开数据库
			if (!(new File(dbfile).exists())) {
 
				Log.i("info", "qq");
				InputStream is = this.context.getResources().getAssets()
						.open("festival.db"); // 欲导入的数据库
				// InputStream is = this.context.getResources().openRawResource(
				// R.raw.);
				Log.i("info", "qq1");
				FileOutputStream fos = new FileOutputStream(dbfile);
				byte[] buffer = new byte[1024];
				int count = 0;
				Log.i("info", "qq2");
				while ((count = is.read(buffer)) != -1) {
					fos.write(buffer, 0, count);
					Log.i("info", buffer.length + "");
					fos.flush();
				}
				fos.close();
				is.close();
			} 
 
			SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(dbfile, null);
  
			return db;
		} catch (FileNotFoundException e) {
			Log.e("Database", "File not found");
			e.printStackTrace();
		} catch (IOException e) {
			Log.e("Database", "IO exception");
			e.printStackTrace();
		}
		return null;
	} 
 
	public void closeDatabase() {
		this.database.close();
	}
}
————————————————
版权声明:本文为CSDN博主「心忘则忘」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/nkdwslsd/article/details/52643278

 

资源分为两种:

    第一种:res目录下的资源(该资源不会被编译,但是会生成id)

    第二种:Assets文件夹下的资源文件,又叫原始资源文件(不会被编译,也不会生成id)

如何创建Assest文件夹

可以直接把资源复制粘贴到该文件夹下

实现访问Assets文件夹里面的资源:

一,获取Assets文件夹的管理类

二,便利文件夹下的资源列表:

三,Assets的绝对路径

四.获取Assets文件夹的文本

五,获取Assets文件夹下的网页(红方框里面放的是网页名称)

效果展示:

点击按钮:

这个就是刚才的double.xml

六,获取Assets文件夹下的图片

效果展示:

点击按钮:哈哈哈哈嗝~

七,获取Assets文件夹下的音频


————————————————
版权声明:本文为CSDN博主「LIXIAONA_1101」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/LIXIAONA_1101/article/details/80695928

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值