Android读写SD卡

SD卡的读写是我们在开发Android 应用程序过程中最常见的操作。下面介绍SD卡的读写操作方式:1.获取SD卡的根目录2.在SD卡上创建文件夹目录3.在SD卡上创建文件4.判

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

  SD卡的读写是我们在开发Android 应用程序过程中最常见的操作。下面介绍SD卡的读写操作方式:

   1. 获取SD卡的根目录

String  sdCardRoot = Environment.getExternalStorageDirectory().getAbsolutePath();   
// 何问起 hovertree.com

 2. 在SD卡上创建文件夹目录

/** 
 * 在SD卡上创建目录 
 */  
public File createDirOnSDCard(String dir)  
{  
    File dirFile = new File(sdCardRoot + File.separator + dir +File.separator);  
    Log.v("createDirOnSDCard", sdCardRoot + File.separator + dir +File.separator);  
    dirFile.mkdirs();  
    return dirFile;  
}  
// 何问起 hovertree.com

 3. 在SD卡上创建文件

/** 
 * 在SD卡上创建文件 
 */  
public File createFileOnSDCard(String fileName, String dir) throws IOException  
{  
    File file = new File(sdCardRoot + File.separator + dir + File.separator + fileName);  
    Log.v("createFileOnSDCard", sdCardRoot + File.separator + dir + File.separator + fileName);  
    file.createNewFile();  
    return file;  
}  // 何问起 hovertree.com

4.判断文件是否存在于SD卡的某个目录

/** 
 * 判断SD卡上文件是否存在 
 */  
public boolean isFileExist(String fileName, String path)  
{  
    File file = new File(sdCardRoot + path + File.separator + fileName);  
    return file.exists();  
}  // 何问起 hovertree.com

  5.将数据写入到SD卡指定目录文件

// 何问起 hovertree.com
/* 写入数据到SD卡中 
     */  
    public File writeData2SDCard(String path, String fileName, InputStream data)  
    {  
        File file = null;  
        OutputStream output = null;  
          
        try {  
            createDirOnSDCard(path);  //创建目录  
            file = createFileOnSDCard(fileName, path);  //创建文件  
            output = new FileOutputStream(file);  
            byte buffer[] = new byte[2*1024];          //每次写2K数据  
            int temp;  
            while((temp = data.read(buffer)) != -1 )  
            {  
                output.write(buffer,0,temp);  
            }  
            output.flush();  
              
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
        finally{  
            try {  
                output.close();    //关闭数据流操作  
            } catch (Exception e2) {  
                e2.printStackTrace();  
            }  
        }  
          
        return file;  
    } 

   one more important thing:

      对SD卡的操作,必须要申请权限:    

 <uses-permission android:name=”android.permission.WRITE_EXTERNAL_STORAGE”/>

推荐:http://www.cnblogs.com/roucheng/p/3504465.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/120554.html原文链接:https://javaforall.net

(0)
上一篇 2021年12月23日 下午9:00
下一篇 2021年12月23日 下午10:00


相关推荐

  • RabbitMQ延迟队列实现

    RabbitMQ延迟队列实现1 生产者生产一条延迟消息 根据延迟时间的不同 利用不同的 routing key 将消息路由到不同的延迟队列 每个队列都设置了不同的 TTL 属性 TTL TimeToLive 生存时间 并绑定到同一个死信交换机中 2 消息过期后 根据 routing key 的不同 又会被死信交换机路由到不同的死信队列中 消费者只需要监听对应的死信队列进行消费即可

    2026年3月16日
    2
  • minipcie网卡接口_开mini的女人特点

    minipcie网卡接口_开mini的女人特点miniPCIe接口CAN卡及其使用特点

    2025年10月3日
    6
  • Autolisp 通过关键字合并图层

    Autolisp 通过关键字合并图层获得所有图层参数 无返回值 表 userdefinedf strsplitspli andreturnali example strsplit 1 22 333 4444 gt gt 1 22 333 4444 strsplit 1 22 333 4444 amp g

    2026年3月18日
    2
  • linux 中查看组成员命令,linux 用户和用户组命令

    linux 中查看组成员命令,linux 用户和用户组命令1 用户命令 1 1 新增用户 useradd 选项用户名参数说明 选项 ccomment 指定一段注释性描述 d 目录指定用户主目录 如果此目录不存在 则同时使用 m 选项 可以创建主目录 g 用户组指定用户所属的用户组 G 用户组 用户组指定用户所属的附加组 sShell 文件指定用户的登录 Shell u 用户号指定用户的用户号 如果同时有 o 选项 则可以重复使用其他用户的标

    2026年3月26日
    2
  • 电力通信网体系结构图_电力通信技术

    电力通信网体系结构图_电力通信技术电力通信网体系的分层可以从水平和垂直两个方面去理解:水平方向上可以划分两层,即骨干通信网、接入通信网;垂直方向上骨干网又可以分为传输网、数据网、支撑网。其中接入通信网可分为输变电通信网与配电通信网。一、骨干通信网1.1传输网:是由线路设施、传输设施等组成的为传送新消息业务提供所需传送承载能力的通道,它是通信网络的基础,它为整个通信网络上所承载的业务提供传输通道和平台。1.2

    2025年12月4日
    5
  • 用户案例怎么写_用户运营案例

    用户案例怎么写_用户运营案例用户案例 – 3Cs

    2022年4月21日
    52

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号