前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android读写SD卡

Android读写SD卡

作者头像
全栈程序员站长
发布2022-07-15 15:06:53
1.1K0
发布2022-07-15 15:06:53
举报

大家好,又见面了,我是全栈君

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

1. 获取SD卡的根目录

代码语言:javascript
复制
String  sdCardRoot = Environment.getExternalStorageDirectory().getAbsolutePath();   
// 何问起 hovertree.com

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

代码语言:javascript
复制
/** 
 * 在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卡上创建文件

代码语言:javascript
复制
/** 
 * 在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卡的某个目录

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

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

代码语言:javascript
复制
// 何问起 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”/>

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021年12月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档