Androin学习笔记五十:Android 将文件复制到指定目录

来源:互联网 发布:魔鬼价位软件 编辑:程序博客网 时间:2024/04/28 16:32

出处:http://blog.csdn.net/hugengzong/article/details/6885377

有时开发需要将指定的文件复制到指定的目录下,比如:第一次打开应用程序时,可以将其注册的一些相关信息或者一些有必要的数据信息复制到指定的目录下,永久的保存下来,今天我就仿照网上一篇相关博文写一个刚开始放在Androd工程里的一个数据库文件复制到Android应用程序中。大家修改一下存放目录,将图片、文本等文件复制到指定目录的sd里

说明一下,所有应用程序的数据库都是存放到 /data/data/包名/databases 下面

  

[java] view plain copy
  1. package com.txj.novel.read;  
  2.   
  3. import java.io.File;  
  4. import java.io.FileOutputStream;  
  5. import java.io.IOException;  
  6. import java.io.InputStream;  
  7.   
  8. import android.annotation.SuppressLint;  
  9. import android.app.TabActivity;  
  10. import android.os.Bundle;  
  11. import android.os.Handler;  
  12. import android.os.Message;  
  13.   
  14. /** 
  15.  * @functional 主界面 
  16.  * @author hugengzong 
  17.  * @createTime 2014年11月29日下午10:47:44 
  18.  */  
  19. @SuppressLint("HandlerLeak")  
  20. public class CopyOfMainActivity extends TabActivity {  
  21.   
  22.     @Override  
  23.     public void onCreate(Bundle savedInstanceState) {  
  24.         super.onCreate(savedInstanceState);  
  25.         setContentView(R.layout.main_activity);  
  26.   
  27.         mHandler.sendEmptyMessage(1); // 判断是否有数据库,如果没有将数据库写入指定位置  
  28.           
  29.     }  
  30.   
  31.     private Handler mHandler = new Handler() {  
  32.         public void handleMessage(Message msg) {  
  33.             switch (msg.what) {  
  34.   
  35.             /** 
  36.              * 判断数据库是否有数据库,如果没有将数据库复制到指定位置, 
  37.              * Novel.db是assets下的数据库名称 
  38.              */  
  39.             case 1:   
  40.                 try {  
  41.                     toSDWriteFile("Novel.db");  
  42.                 } catch (IOException e) {  
  43.                     e.printStackTrace();  
  44.                 }  
  45.                   
  46.                 break;  
  47.             }  
  48.         }  
  49.     };  
  50.   
  51.     // 将指定文件写入SD卡,说明一下,应用程序的数据库是存放到/data/data/包名/databases 下面  
  52.     private String toSDWriteFile(String fileName) throws IOException {  
  53.         // 获取assets下的数据库文件流  
  54.         InputStream is = this.getBaseContext().getAssets().open(fileName);  
  55.   
  56.         // 获取应用包名  
  57.         String sPackage = this.getPackageName();  
  58.   
  59.         File mSaveFile = new File("/data/data/" + sPackage + "/databases/");  
  60.       
  61.         if (!mSaveFile.exists()) {  
  62.             mSaveFile.mkdirs();  
  63.         }  
  64.         String local_file = mSaveFile.getAbsolutePath() + "/" + fileName;  
  65.   
  66.         mSaveFile = new File(local_file);  
  67.   
  68.         if (mSaveFile.exists()) {  
  69.             mSaveFile.delete();  
  70.         }  
  71.         mSaveFile.createNewFile();  
  72.   
  73.         FileOutputStream fos = new FileOutputStream(mSaveFile, true);  
  74.   
  75.         byte[] buffer = new byte[400000];  
  76.         int count = 0;  
  77.         while ((count = is.read(buffer)) > 0) {  
  78.             fos.write(buffer, 0, count);  
  79.         }  
  80.         mSaveFile = null;  
  81.         fos.close();  
  82.         is.close();  
  83.   
  84.         return local_file;  
  85.     }  
  86.   
  87. }  

     其中Novel.db是assets下的数据库名称,如果数据库名称不同,在此修改就行了。

     本文到此就结束了,各位兄台有不好之处,请不吝赐教!
 


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 RRC ERAB E-RAB Linux用gred命令单词长度大于等于5 使用重定向命令完成2个文件合并 使用重定向完成文本文件的拷贝 Linux查找时候不现实出错信息 Linux去掉某个文件所有者同组用户的写权限 求方程式ax2 GNAB-011 flash制作课件 有数组$array=array(“a”=>2,”b”=>6,”c”=>5) 有数组$array=array(“a”=>2,”b”=>6,”c”=>5) 有数组$array=array(“a”=>2,”b”=>6,”c”=>5)排序 php对一个数组按某个键值排序 有数组$array=array(“a”=>2,”b”=>6,”c”=>5);用php实现对以上数组进 $array=array(“a”=>2,”b”=>6,”c”=>5);用php实现对以上数组大小排序 $array=array(“a”=>2,”b”=>6,”c”=>5) $array=array(“a”=>2,”b”=>6,”c”=>5)排序 Linux去掉某个文件所有者同组用户的写权限 Linux.sed命令显示某个文件的第五行 Linux输出该文件的奇数行 Linuxsed命令在文件的最后一行插入该文件的的统计信息,包含多少行,多少个单词,多个字符 Linuxcut命令 Linux.cut命令 Linux.cut命令提出a文件中 Linux.cut命令提出a文件中 Linux.ls Linux创建文件 Linux修改文件的时间 Linux创建文件 Linux修改文件的时间 数字图像分析 数字图像分析中科大 希島 斗鱼 中国球轴承反倾销 中国球轴承反倾销案 MMaseagniandHChi.Optimalquasi-MonteCarlovaluationo [10]HoCTB,LiaoCK,KimHTValuingInternetCompanies:ADE javaweb注册界面