1. 得到存储设备的目录:/SDCARD(一般情况下)

SDPATH=Environment.getExternalStorageDirectory()+"/";

2. 判断SD卡上的文件夹是否存在:通过File对象的exists()方法。

/**
   * 判断文件是否已经存在;
   *
  /
  public boolean checkFileExists(String filepath) {
         File file=new File(SDPATH+filepath);
         return file.exists();
    }

3.在SD卡上创建目录:通过File对象的mkdir()方法实现。

/*
   * 在SD卡上创建目录;
   */
  public File createDIR(String dirpath) {
    File dir=new File(SDPATH+dirpath);
    dir.mkdir();
    return dir;
}

4.在SD卡上创建文件:通过File对象的createNewFile()方法实现。
  /*
   * 在SD卡上创建文件;
   */
     public File createFile(String filepath) throws IOException{
      File file=new File(SDPATH+filepath);
           file.createNewFile();
           return file;
     }

5.将InputStream字节流写入到SD卡文件中
     /**
      * 将一个InputStream中的数据写入至SD卡中
      */
   public File writeStreamToSDCard(String dirpath,String filename,InputStream input) {
             File file = null;
             OutputStream output=null;
              try {
                  //创建目录;
                  createDIR(dirpath);
                  //在创建 的目录上创建文件;
                  file = createFile(dirpath+filename);
                  output=new FileOutputStream(file);
                  byte[]bt=new byte[4*1024];
                  while (input.read(bt)!=-1) {
                     output.write(bt);
                  }
                //刷新缓存,
                  output.flush();
              } catch (IOException e) {
                  e.printStackTrace();
              }
              finally{

try{
              output.close();
                  }
          catch (Exception e) {
                     e.printStackTrace();
                  }
              }

return file;

}

6. 访问的权限:
需在AndroidManifest中加上:
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>

转自:http://www.cnblogs.com/onlyinweb/archive/2012/08/13/2636159.html

sd卡文件操作的更多相关文章

  1. Android数据存储之SD卡文件操作

    赶上智能手机刚问世时有幸用过的小伙伴都知道,那时候的Android系统是把我们自己买的SD卡作为外部存储的,但是不知道从哪天开始,SD卡就被固化到智能手机的内部了,但是我们仍然把它称为外部存储.我想A ...

  2. 飞鱼相册笔记(1)----外置SD卡文件夹名称不区分大小写

    飞鱼相册笔记(1)----外置SD卡文件夹名称不区分大小写 在飞鱼相册发布的第一个测试版中,很多用户表示无法查看外置SD卡中的照片.乍一听觉得加个外置SD卡的根目录,然后在扫描所有图片的时候把这个根目 ...

  3. 安卓下对SD卡文件的读写

    为SD下的操作文件,封装了一些类: package ujs.javawritedata; import java.io.File; import java.io.FileInputStream; im ...

  4. Android得到SD卡文件夹大小以及删除文件夹操作

    float cacheSize = dirSize(new File(Environment.getExternalStorageDirectory() + AppConstants.APP_CACH ...

  5. 读取SD卡文件夹下的MP3文件和播放MP3文件

    首先获取SD卡path路径下的所有的MP3文件,并将文件名和文件大小存入List数组(此代码定义在FileUtils类中): /** * 读取目录中的Mp3文件的名字和大小 */ public Lis ...

  6. Android监听SD卡文件变化

    今天再一次使用到FileObserver,上一次使用还是很久之前了.总结一下FileObserver里留的一些“坑”   1.FileObserver只能监听一个目录下的“一级”子文件,也就是说Fil ...

  7. Android 最简单的SD卡文件遍历程序

    package com.wenhao.test.sddemo; import java.io.File; import android.app.Activity; import android.os. ...

  8. Android 开发笔记___SD卡文件操作

    package com.example.alimjan.hello_world.Utils; import android.graphics.Bitmap; import android.graphi ...

  9. Android测试读写sd卡文件与写sd卡文件耗时

    测试从sd卡读1k大小的文件,再写1k大小的文件,由于处理耗时很短,所以循环500次,查看耗时:测试写1k大小的文件,直接在内存构造一个1k的buffer,将这个buffer直接写到文件,同样循环50 ...

随机推荐

  1. ****K - Alien's Organ

    K - Alien's Organ Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%lld & %llu Sub ...

  2. how to check if you have TURNIN successfully?

    For example, if I want to check if I have turnin my proj1 of cs130a successfully, I just use this co ...

  3. 坑爹的 Hardware Reserved Memory (查看内存等)

    来源: http://blog.sina.com.cn/s/blog_772645ff0100s4t7.html 我的电脑是GatewayNV49C83c,酷睿i3的CPU和NV的独立显卡 Inter ...

  4. mysql最大连接数问题

    进入mysql系统就, 查询最大连接数:show variables like 'max_connections'; 修改最大连接数:set global max_connections=1000;

  5. 验证码计时 -- UIButton setTitle 闪烁问题解决方案

    首先,有各种版本 方法一: 我运用的一种极其简单的版本:  将UIButton的Type 设成 Custom 就不会有闪烁的问题重现 p.p1 { margin: 0.0px 0.0px 0.0px ...

  6. Entitlements (授权机制) 延伸

    授权机制 (Entitlements) 到目前为止,我们都假设所有的证书起到的作用都是一样的,并且假设如果我们有了一个有效的证书代码签名也就相应的有效.然而这当然不是唯一的规则.操作系统有许多标准来检 ...

  7. java登录密码效验

    密码校验需求: 1) 密码控制只能输入字母.数字.特殊符号(~!@#$%^&*()_+[]{}|\;:'",./<>?)2) 长度 6-16 位,必须包括字母.数字.特殊 ...

  8. 8VC Venture Cup 2017 - Elimination Round

    传送门:http://codeforces.com/contest/755 A题题意是给你一个数字n,让你找到一个数字m,使得n*m+1为合数,范围比较小,直接线性筛出1e6的质数,然后暴力枚举一下就 ...

  9. JS逻辑运算大于小于比较

    遇到这个问题,结果测试了好半天终于发现原因, 例子: var az = $('#a').css('zIndex'); // 1001 var bz = $('#b').css('zIndex'); / ...

  10. Spring MVC集成slf4j-logback

    转自: Spring MVC集成slf4j-logback 1.  Spring MVC集成slf4j-log4j 关于slf4j和log4j的相关介绍和用法,网上有很多文章可供参考,但是关于logb ...