huangyx 2016-10-17
public void checkData(){ //app 的 数据库路径 String dataPath = getApplicationContext().getDatabasePath("..").getAbsolutePath(); dataPath = dataPath.replace("..","");//out:/data/data/com.test1/databases/ // 数据库 文件 路径 String dataFilePath = dataPath+"/zi_ci.db"; // 数据库 文件 File dataFile=new File(dataFilePath); //判断数据库文件是否存在 if(dataFile.exists()){ Log.d("mft","数据库文件已经存在"); }else{ Log.d("mft", "不存在数据库将准备创建"); File path=new File(dataPath); if (path.mkdir()){ Log.i("mft", "创建数据库文件夹成功"); }else{ Log.i("mft", "创建数据库文件夹失败"); }; try { //得到 assets 资源 AssetManager assets_am= MainActivity.this.getAssets(); //得到 assets 数据库文件的输入流 InputStream is=assets_am.open("keyb_sqlite.db"); //在包里的数据库文件夹里创建 数据库 空文件 FileOutputStream fos=new FileOutputStream(dataFile); Log.i("mft", "fos="+fos); //创建byte数组 用于1KB写一次 写入 包里 刚才创建的 数据库 空文件 byte[] buffer=new byte[1024]; int count = 0; while((count = is.read(buffer))>0){ fos.write(buffer,0,count); } //最后关闭就可以了 fos.flush(); fos.close(); is.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } //\\ }