Android学习笔记_6_保存文件到SDCard
一、加入访问sdcard的权限
Environment.getExternalStorageState()方法用于获取SDCard的状态,如果手机装有SDCard,并且可以进行读写,那么方法返回的状态等于Environment.MEDIA_MOUNTED。
Environment.getExternalStorageDirectory()方法用于获取SDCard的目录,当然要获取SDCard的目录,你也可以这样写:
File sdCardDir = new File("/mnt/sdcard"); //获取SDCard目录
File saveFile = new File(sdCardDir, "itcast.txt");
//上面两句代码可以合成一句: File saveFile = new File("/mnt/sdcard/itcast.txt");
在Shared中,路径是不需要自己填写的。因为要保存到内存中去,所以需要自己填写路径。绝对路径是不被推荐的。在Android2.2之前,sdCard的路径都是“/sdcard”在android2.2以及之后的版本中,路径都换成了“/mnt/sdcard”。为了兼容之前的版本,在android中有着一个镜像文件,将“/sdcard”指向了"/mnt/sdcard"。
android的方法中提供了获取外储存文件的方法,就是Environment.getExternalStorageDirecttory().还有一点要注意的事,保存到sdcard中文件的时候,需要获取系统的允许,在Mainfest.xml文件中,添加文件删除和创建的允许。在</application>下增加:
<!-- 加入SDCARD的删除文件权限 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<!-- 加入SDCARD的写入数据权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
二、引入单元测试
<!-- 在Mainfest.xml文件中增加,导入library的使用(AndroidUnit) -->
<uses-library android:name="android.test.runner" />
<!-- 为savefiletosdcard这个包增添单元测试说明 -->
<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.android.savefiletosdcard" >
</instrumentation>
<!-- 然后编写测试类,需要继承AndroidTestCase类。 -->
三、编写业务层代码
/**
* 保存文件到sdcard,需要使用FileOutputStream对象
* 保存到sdcard的文件,可以让每个应用访问,不受限制。
* @param filename
* @param content
* @throws Exception
*/
public void saveToSDCard(String filename,String content) throws Exception{
// File file = new File(new File("/mnt/sdcard"),filename);
//获取sdcard目录
File file = new File(Environment.getExternalStorageDirectory(),filename);
FileOutputStream fos = new FileOutputStream(file);
fos.write(content.getBytes());
fos.close();
}
//判断sdcard状态,并且允许读写
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
saveToSDCard(nameString, contentString);
}
四、编写测试代码
public class SDCardTest extends AndroidTestCase { public void testSaveToSDCard() throws Exception{
FileService fileService = new FileService(getContext());
fileService.saveToSDCard("11.txt", "abcdef");
}
}
执行结果如下:
Android学习笔记_6_保存文件到SDCard的更多相关文章
- Android学习笔记之Drawable 文件夹
PS:最近闲着无聊..模仿去写个QQapp..效果还不错..并且从中又学习到了一些相关的东西,在这里进行一些相关总结.. 学习内容: Android 中 Drawable 文件夹内部相关属性.. ...
- Android学习笔记之mainfest文件中android属性
android:allowTaskReparenting 是否允许activity更换从属的任务,比如从短信息任务 切换到浏览器任务. -------------------------------- ...
- Android学习笔记样式资源文件
样式资源和主题资源都是写在styles.xml文件里面的 <style name="title"> <item name="android:textSi ...
- Android学习笔记数组资源文件
在android中我们可以通过数组资源文件,定义数组元素. 数组资源文件是位于values目录下的 array.xml <?xml version="1.0" encodin ...
- Android学习笔记颜色资源文件
资源文件目录 颜色资源文件格式 colors.xml <?xml version="1.0" encoding="utf-8"?> <reso ...
- Android学习笔记菜单资源文件
创建菜单资源 menu_one.xml <?xml version="1.0" encoding="utf-8"?> <menu xmlns: ...
- 【C#学习笔记】保存文件
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- android学习笔记36——使用原始XML文件
XML文件 android中使用XML文件,需要开发者手动创建res/xml文件夹. 实例如下: book.xml==> <?xml version="1.0" enc ...
- 【转】 Pro Android学习笔记(七八):服务(3):远程服务:AIDL文件
目录(?)[-] 在AIDL中定义服务接口 根据AIDL文件自动生成接口代码 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.n ...
随机推荐
- Ubuntu以及CentOS7修改ssh端口号详细步骤
1.Ubuntu修改ssh端口号步骤: 1.修改sshd.config文件.执行vim etc/ssh/sshd_config.增加上我们需要增加的ssh的端口号.图例增加了5309的端口号. ESC ...
- Spring Security怎样不让默认的ProviderManager清除密码等信息
<authentication-manager erase-credentials="false"> ... </authentication-manager&g ...
- nyoj 456——邮票分你一半——————【背包思想搜索】
邮票分你一半 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 小珂最近收集了些邮票,他想把其中的一些给他的好朋友小明.每张邮票上都有分值,他们想把这些邮票分 ...
- continue break return
ontinue: 可以让程序跳过,continue关键字之后的语句,回到while循环的第一行命令 break: 让程序完全跳出循环,结束while循环的执行 return: 从查询或过程中无条件退出 ...
- css之margin,padding的百分比
注意:上下内边距与左右内边距一致:即上下内边距的百分数会相对于父元素宽度设置,而不是相对于高度. PS:而且是基于父元素内容的宽度(width属性的大小),不是基于父元素整个框架的宽度
- mysql什么情况下会触发表锁
锁是计算机协调多个进程或线程并发访问某一资源的机制.在数据库中,除传统的计算资源(如CPU.RAM.I/O等)的争用以外,数据也是一种供许多用户共享的资源.如何保证数据并发访问的一致性.有效性是所有数 ...
- Eclipse equinox implementation of OSGi
Bundle package org.osgi.framework; public interface Bundle extends Comparable<Bundle> { int UN ...
- Eclipse Startup
First of all, we take a look at class EclipseStarter /********************************************** ...
- Network Embedding 论文小览
Network Embedding 论文小览 转自:http://blog.csdn.net/Dark_Scope/article/details/74279582,感谢分享! 自从word2vec横 ...
- java调优参数记录
java -server -Xms1024m -Xmx2048m -XX:+UseParallelGC -XX:+UseG1GC -XX:ParallelGCThreads=4 -XX:+UsePar ...