有时开发需要将指定的文件复制到指定的目录下,比如:第一次打开应用程序时,可以将其注册的一些相关信息或者一些有必要的数据信息复制到指定的目录下,永久的保存下来,今天我就仿照网上一篇相关博文写一个刚开始放在Androd工程里的一个数据库文件复制到Android的指定的数据库文件夹下面。
- private String databasepath = "data/data/com.android.egozixun/databases/";
- private String databasefn = "labelname.db";
-
- // 把数据库复制到指定目录
- private void copyDatabase()
- {
- try
- {
- // 获得li.db 绝对路径
- String DATABASEFN = databasepath + databasefn;
- File dir = new File(databasepath);
-
- // 如果/sdcard/li目录中存在,创建这个目录
- if(!dir.exists())
- {
- System.out.print("1");
- }
- dir.mkdir();
-
- // 如果在目录中不存在
- // 文件,则从res\raw目录中复制这个文件到
- if(!(new File(DATABASEFN).exists()))
- {
- // 获得封装 文件的InputStream对象
- InputStream is = getResources().openRawResource(R.raw.labelname);
- System.out.println("2");
- FileOutputStream fos = new FileOutputStream(DATABASEFN);
- System.out.println("2.1");
- // 下面这一段代码不是很理解,有待研究
-
- byte[] buffer = new byte[8192];
- System.out.println("3");
- int count = 0;
- // 开始复制db文件
- while((count=is.read(buffer)) > 0)
- {
- fos.write(buffer, 0, count);
- System.out.println("4");
- }
- fos.close();
- is.close();
- }
- } catch(Exception e)
- {
- e.printStackTrace();
- }
- }
其中databasepath 是用来存放指定目录的,如果要改变目录,在此修改就行了。
本文到此就结束了,各位兄台有不好之处,请不吝赐教!