Android入门开发之SD卡读写操作(转)
SD卡的读写是我们在开发android 应用程序过程中最常见的操作。下面介绍SD卡的读写操作方式:
1. 获取SD卡的根目录
- String sdCardRoot = Environment.getExternalStorageDirectory().getAbsolutePath();
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;
- }
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;
- }
4.判断文件是否存在于SD卡的某个目录
- /**
- * 判断SD卡上文件是否存在
- */
- public boolean isFileExist(String fileName, String path)
- {
- File file = new File(sdCardRoot + path + File.separator + fileName);
- return file.exists();
- }
5.将数据写入到SD卡指定目录文件
- <span style="white-space:pre"> </span>/**
- * 写入数据到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://blog.csdn.net/newjerryj/article/details/8829179
Android入门开发之SD卡读写操作(转)的更多相关文章
- Android开发之SD卡上文件操作
1. 得到存储设备的目录:/SDCARD(一般情况下) SDPATH=Environment.getExternalStorageDirectory()+"/"; 2. 判断SD卡 ...
- android 64 sd卡读写的操作
package com.itheima.writesd; import java.io.File; import java.io.FileNotFoundException; import java. ...
- Android安全开发之ZIP文件目录遍历
1.ZIP文件目录遍历简介 因为ZIP压缩包文件中允许存在“../”的字符串,攻击者可以利用多个“../”在解压时改变ZIP包中某个文件的存放位置,覆盖掉应用原有的文件.如果被覆盖掉的文件是动态链接s ...
- Android 数据库SQLite 写入SD卡
如果手机没有root,数据库文件是无法查看到的,不方便调试. 最好的办法是把数据库写进SD卡. 修改的地方有两处: 1.在你的helper类中把数据库文件名称 DATABASE_NAME 由原来的一个 ...
- Android 安全开发之 ZIP 文件目录遍历
1.ZIP文件目录遍历简介 因为ZIP压缩包文件中允许存在"../"的字符串,攻击者可以利用多个"../"在解压时改变ZIP包中某个文件的存放位置,覆盖掉应用原 ...
- Android安全开发之WebView中的地雷
Android安全开发之WebView中的地雷 0X01 About WebView 在Android开发中,经常会使用WebView来实现WEB页面的展示,在Activiry中启动自己的浏览器,或者 ...
- 【STM32】使用SDIO进行SD卡读写,包含文件管理FatFs(七)-准备移植FatFs
[STM32]使用SDIO进行SD卡读写,包含文件管理FatFs(一)-初步认识SD卡 [STM32]使用SDIO进行SD卡读写,包含文件管理FatFs(二)-了解SD总线,命令的相关介绍 [STM3 ...
- [android] 保存文件到SD卡
/****************2016年5月4日 更新*****************************/ 知乎:为什么很多Android应用要把文件写到/sdcard目录下而不是写到/d ...
- 第36章 SDIO—SD卡读写测试
第36章 SDIO—SD卡读写测试 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/f ...
随机推荐
- jQuery之元素筛选
1.eq() 筛选指定索引号的元素2.first() 筛选出第一个匹配的元素3.last() 筛选出最后一个匹配的元素4.hasClass() 检查匹配的元素是否含有指定的类5.filter() ...
- 【leetcode】Integer to Roman
Integer to Roman Given an integer, convert it to a roman numeral. Input is guaranteed to be within t ...
- RRD
http://my.oschina.net/u/1458120/blog/208857
- ccf559c
题意:给出一个矩阵棋盘,大小不超过10^5.上面有n个非法点(n<=2000)不可以踩,从左上角开始走到右下角,每次只能向下或者向右移动.问有多少种走法.结果对10^9+7取模. 分析: 组合数 ...
- c++ 调用外部程序exe-ShellExecuteEx
此方法最实用的调用exe. #include <ShellAPI.h> string file_path = s_run_dir+"\\ConsoleApplication1.e ...
- linux 常用快捷键
切换中英文输入法 Ctrl+space打开终端 Ctrl+Alt+T 终端下复制粘贴 Ctrl + Shift + c/v
- php命令行运行出现错误Call to undefined function curl_init()
在windows命令行窗口下运行php命令,需要将php.exe所在的路径添加到Path环境变量,例如C:\wamp\bin\php\php5.4.3 启动Apache服务 在命令行中输入php te ...
- windows系统查看80端口被占用的程序并结束该程序运行
一.背景 最近系统更新以后,我在Idea中适用80端口启动项目的时候发现80端口被占用了,就查了资料看怎么找到占用80端口的程序并结束其运行,下面把解决方式共享给大家. 二.解决步骤 1.首先打开控制 ...
- August 28th 2016 Week 36th Sunday
What doesn't kill you makes you stronger. 那些没有彻底击败你的东西只会让你更强大. Where there is life, there is hope, a ...
- c语言强制类型转换
一.强制类型转换 printf("3/2+100.5=%f",3/2+100.5);//100.5错误表达 printf (" (float)3/(float)2 ...