目的
l 在项目开发时,尤其是游戏开发,有时候需要把特定的文件放在data/data目录下,比如sqlite数据库中,我们会事先创建数据库并在里面加入需要的数据,比如游戏的关卡数据。而android提供的sqlite框架似乎只能读取data/data目录下的数据库文件,此时就很有必要先放在Assets目录下,之后再复制到data/data目录下。废话不多说,直接上代码!
实现代码
void copyData() { InputStream in = null; FileOutputStream out = null; String path = this.getApplicationContext().getFilesDir() .getAbsolutePath() + "/mydb.db3"; // data/data目录 File file = new File(path); if (!file.exists()) { try { in = this.getAssets().open("db/mydb.db3"); // 从assets目录下复制 out = new FileOutputStream(file); int length = -1; byte[] buf = new byte[1024]; while ((length = in.read(buf)) != -1) { out.write(buf, 0, length); } out.flush(); } catch (Exception e) { e.printStackTrace(); } finally{ if (in != null) { try {
in.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace(); } } if (out != null) { try { out.close(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } } } } } |