关于android开发中的文件和sd卡问题

来源:互联网 发布:购买火车票的软件 编辑:程序博客网 时间:2024/04/29 18:57

移动开发,少不了要对文件进行操作:创建和删除。下面就记录一下我自己的心得:

一 在android开发中,进行这行操作必须要有相应的权限:

 1)创建文件:<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
 2)删除文件:<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>

二 创建文件夹代码:
 File file = new File(Environment.getExternalStorageDirectory(),fileNm);//fileNm是要创建的文件夹的名字
  if(!file.exists()){
   file.mkdir();//在一个已存在的路径中创建单层文件夹,emp: mnt/sdcard/ceshi.
   //file.mkdirs();//如果要创建多层目录,则用mkdirs。emp: mnt/sdcard/e1/e2/e3;
  }

 备注:在一个已存在的路径中创建单层文件夹时,如: mnt/sdcard/ceshi.
      file.mkdir()和file.mkdirs()没有区别。但如果要创建多层目录,如: mnt/sdcard/e1/e2/e3时,则只能用file.mkdirs();

三 删除文件夹代码:
 File file = new File(path);
 file.delete();//只能删除空目录,对于非空目录,要把里面的文件先删除,然后再删除这个目录

 备注:1)file.delete()立即删除,file.deleteOnExit()当程序退出时删除。(未得出测试结果,网上资料)
       2)删除非空目录:
          public static void RecursionDeleteFile(File file){
   if(file.isFile()){
    file.delete();
    return;
    }
   if(file.isDirectory()){
    File[] childFile = file.listFiles();
    if(childFile == null || childFile.length == 0){
    file.delete();
    return;
   }
    for(File f : childFile){
    RecursionDeleteFile(f);
   }
   file.delete();
   }

四 创建文件:1)文件的创建:
  File file = new File();
         file.createNewFile();
      2)文件的写入:
  public void writeInFile(File file,InputStream input){
        try{
   OutputStream  output = new FileOutputStream(file);
   //以1K为单位,每次写1k,如果文件小,单位就小一点,不然下载的文件会增大,内容变化
    byte buffer[] = new byte[1024];
   
    while ((input.read(buffer)) != -1) { 
          output.write(buffer); 
        } 
    // 清除缓存  
    output.flush();
   }catch(IOExeption e){
    output.close();
    LogUtil.e(TAG,e.toString());
   }finally{
           output.close();
   }


五 sd卡待续。。。

原创粉丝点击