SD卡操作
读写SD卡
Context类的openFileInput和openFileOutput方法都是针对应用程序的数据文件夹进行的文件操作,由于手机的ROM容量有限,因此这种操作有一定局限性。
手机的SD卡提供了比ROM更大的存储容量。更加适合于存取大文件。
Environment[android.os. Environment]
常量及方法 |
类型 |
描述 |
public static final String MEDIA_MOUNTED |
常量 |
扩展存储设允许进行读写访问 |
public static final String MEDIA_CHECKING |
常量 |
扩展存储设处于检查状态 |
public static final String MEDIA_MOUNTED_READ_ONLY |
常量 |
扩展存储设处于只读状态 |
public static final String MEDIA_REMOVED |
常量 |
扩展存储设不存在 |
public static final String MEDIA_UNMOUNTED |
常量 |
没有找到扩展存储设 |
public static File getDataDirectory() |
普通 |
取得Data目录 |
public static File getDownloadCacheDirectory() |
普通 |
取得下载的缓存目录 |
public static File getExternalStorageDirectory() |
普通 |
取得扩展的存储目录 |
public static String getExternalStorageState() |
普通 |
取得扩展存储设备的状态 |
public static File getRootDirectory() |
普通 |
取得Root目录 |
public static boolean isExternalStorageRemovable() |
普通 |
判断扩展的存储目录是否被删除 |
申请SD卡的读写权限
打开项目清单文件,在Permission选项卡中选择权限
SD卡文件读取操作
1 private TextView tv;
2 private Button bt1;
3 private Button bt2;
4 private EditText et;
5
6 protected void onCreate(Bundle savedInstanceState) {
7 super.onCreate(savedInstanceState);
8 setContentView(R.layout.xml文件);
9 et = (EditText) findViewById(R.id.sdET);
10 tv = (TextView) findViewById(R.id.sdTV);
11 bt1 = (Button) findViewById(R.id.sdBT01);
12 bt2 = (Button) findViewById(R.id.sdBT02);
13 bt1.setOnClickListener(this);
14 bt2.setOnClickListener(this);
15 }
16
17 public void onClick(View v) {
18 if (!Environment.getExternalStorageState().equals(
19 Environment.MEDIA_MOUNTED)) {// 判断SD卡是否存在
20 Toast.makeText(Sd0.this, "SD卡不存在", 3000).show();
21 return;
22 }
23 switch (v.getId()) {
24 case R.id.sdBT01:
25 // 创建文件夹对象
26 File dir = new File(Environment.getExternalStorageDirectory(),"test");
27 if (!dir.exists()) { // 如果目录不存在,就创建
28 dir.mkdir();
29 }
30 File file = new File(dir, "test.txt"); // 创建文件
31 PrintWriter pw;
32 try {
33 pw = new PrintWriter(file);
34 pw.println(et.getText().toString());
35 pw.close();
36 Toast.makeText(Sd0.this, "保存成功", 3000).show();
37 } catch (FileNotFoundException e) {
38 e.printStackTrace();
39 }
40 break;
41 case R.id.sdBT02:
42 File f = new File(Environment.getExternalStorageDirectory()+
43 "/test/test.txt");// 创建文件夹对象
44 BufferedReader br;
45 try {
46 br = new BufferedReader(new InputStreamReader(new FileInputStream(f)));
47 String str = null;
48 while ((str = br.readLine()) != null) {
49 tv.append(str);
50 }
51 } catch (FileNotFoundException e) {
52 e.printStackTrace();
53 } catch (IOException e) {
54 e.printStackTrace();
55 }
56 break;
57 }
58 }
最新文章
- 阿里im即时通讯 h5 demo
- C6000代码层面优化(一)
- 洛谷P3368 【模板】树状数组 2
- 【android-cocos2d-X 环境配置】在Mac下搭建Cocos2d-X-android开发环境!
- 【go】脑补框架 Express beego tornado Flux reFlux React jsx jpg-ios出品
- HDU 5943 Kingdom of Obsession 【二分图匹配 匈牙利算法】 (2016年中国大学生程序设计竞赛(杭州))
- Android app作为系统应用实现功能笔记
- MYSQL的日志与备份还原
- Storm同步调用之DRPC模型探讨
- select中想要加a链接 并且新窗口打开
- 查看Ubuntu的显卡信息
- linux系统关闭指定服务的方式
- cmd 命令
- 动手动脑(&;课后实验):类和对象
- jedis 连接 redis:Could not get a resource from the pool——我的出错原因和解决办法
- 如何使用 Flexbox 和 CSS Grid,实现高效布局
- http://www.cnblogs.com/linxiyue/p/8244724.html
- jquery插件--问题类(新增&;&;删除)简易版
- Open-Xml SDK使用介绍
- 把打印的内容保存成文件(PDF)
热门文章
- 一步一步教你用IntelliJ IDEA 搭建SSM框架(3)——实现用户登录功能
- Kali-利用metasploit中的exploit/multi/handler进行攻击
- Mac 简单切换jdk版本
- java里字节与字符的区别
- KVM web管理工具——WebVirtMgr
- 5分钟快速部署PESCMS TEAM 团队任务管理系统开发版
- C#8.0: 在 LINQ 中支持异步的 IAsyncEnumerable
- 关于在使用scrapy-redis分布式踩过的那些坑:
- WebSocket+Netty构建web聊天程序
- web文件下载(附方案及源码配置)