您的位置:首页 > 数据库

读取外部的SQLdatabase步骤

2017-03-01 17:02 260 查看
//1:首先要将后缀为db的文件放入工程的资源中res下的raw文件夹//2:外部数据库需要我们先存入手机内存,然后再打开,所以我们要开读写权限//代码部分:
String permissons[] = {android.Manifest.permission.READ_EXTERNAL_STORAGE, android.Manifest.permission.WRITE_EXTERNAL_STORAGE};
String  SdPath = Environment.getExternalStorageDirectory().getPath();//在oncreate中先申请权限
if (hasPermission(permissons)) {
} else {
hasRequse(1, permissons);
}
public boolean hasPermission(String... permission) {
for (String permissiom : permission) {
if (ActivityCompat.checkSelfPermission(this, permissiom) != PackageManager.PERMISSION_GRANTED) {
return false;
}
}
return true;
}

public void hasRequse(int code, String... permission) {
ActivityCompat.requestPermissions(this, permission,code);
}
//3:解读数据,首先将资源文件存入SD卡,然后再从SD卡中打开数据库
    private void initCity() {//打开资源文件获取输入流InputStream in = getResources().openRawResource(R.raw.city);
		//存入SD卡之前一定要先创建路径File file = new File(SdPath + "//sql_database//");file.mkdirs();
		//创建要写入的文件对象File file1=new File(file.getPath(),"city.db");try {FileOutputStream out = new FileOutputStream(file1);byte b[] = new byte[1024];while (in.read(b) != -1) {out.write(b);
		}in.close();out.flush();out.close();} catch (IOException e) {e.printStackTrace();} catch (FileNotFoundException e) {e.printStackTrace();}db = openOrCreateDatabase(file1.getPath(), Context.MODE_PRIVATE, null);Cursor cursor = db.rawQuery(" select * from t_city ", null);Log.i(TAG, "cursor.getCount() === " + cursor.getCount());}
//得到了cursor 您就可以为所欲为了。附件demo:链接:http://pan.baidu.com/s/1bYNiEy 密码:9o19

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: