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

原文链接: https://blog.csdn.net/LIXIAONA_1101/article/details/80695928

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文件夹

Android 如何访问Assets文件夹里面的资源_第1张图片

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

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

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

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

三,Assets的绝对路径

四.获取Assets文件夹的文本

Android 如何访问Assets文件夹里面的资源_第2张图片

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

Android 如何访问Assets文件夹里面的资源_第3张图片

效果展示:

Android 如何访问Assets文件夹里面的资源_第4张图片

点击按钮:

Android 如何访问Assets文件夹里面的资源_第5张图片

这个就是刚才的double.xml

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

Android 如何访问Assets文件夹里面的资源_第6张图片

效果展示:

点击按钮:哈哈哈哈嗝~

Android 如何访问Assets文件夹里面的资源_第7张图片

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

Android 如何访问Assets文件夹里面的资源_第8张图片
————————————————
版权声明:本文为CSDN博主「LIXIAONA_1101」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/LIXIAONA_1101/article/details/80695928

你可能感兴趣的:(android)