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 }
SD卡操作的更多相关文章
- WP8.1 Study12:文件压缩与Known Folder(包含SD卡操作)
一.文件压缩 当应用程序保存和加载数据,它可以使用压缩. 1.使用 Windows.Storage.Compression.Compressor 压缩,获得一个Compressor stream. v ...
- Android 常见SD卡操作
目录 Android 常见SD卡操作 Android 常见SD卡操作 参考 https://blog.csdn.net/mad1989/article/details/37568667. [0.] E ...
- SD卡操作相关的工具SDCardUtils
SD卡操作相关的工具 package com.flyou.utils; import java.io.File; import android.os.Environment; import andro ...
- STM32L476应用开发之五:数据保存与SD卡操作
便携式气体分析仪的特点就是离线运行.尽管是离线运行,但测试数据还是需要的,所以采取方式保存数据就是必须的.在本次项目中我们计划采用SD卡来保存数据. 1.硬件设计 该读卡器整合 SD 卡规范和 FAT ...
- File存对象--android 的File存储到SD卡();
方法1:android File存对象--File存储到SD卡(); 1.保存对象到本地或SD卡需要注意的是,要保存的对象(OAuthV1)一定要实现了Serializable接口.实现了Serial ...
- [笔记]SD卡相关资料
ESD静电放电模块 我知道的flash分为两种NOR flash和NAND flash,NOR falsh容量一般为1~16M用于单片机代码存储,NAND flash最小的是8M最大的现在听说有90G ...
- 第36章 SDIO—SD卡读写测试
第36章 SDIO—SD卡读写测试 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/f ...
- 玩转X-CTR100 l STM32F4 l SD卡FatFs文件系统
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] X-CTR100控制器具有SD卡接口,本教程使用免费 ...
- Android获取SD卡路径及SDCard内存的方法
这篇文章主要介绍了Android获取SD卡路径及SDCard内存的方法,较为详细的分析了Android针对SD卡操作所涉及的类及其具体函数功能,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了A ...
随机推荐
- Redis相关面试题
Reids:单线程+io多路复用机制 Redis与Memcached的区别: 一.memcached值是简单字符串,redis支持hash.set.list等复杂数据类型 二.redis可持久化数据, ...
- ZooKeeper —— 单机环境和集群环境搭建
一.单机环境搭建 1.1 下载 下载对应版本Zookeeper,这里我下载的版本3.4.14.官方下载地址:https://archive.apache.org/dist/zookeeper/ # w ...
- SpringBoot 缓存注解 与EhCache的使用
在SpringBoot工程中配置EhCache缓存 1.在src/main/resources下新建ehcache.xml文件 eternal=true //缓存永久有效,false相反 maxEle ...
- C#—使用InstallerProjects打包桌面应用程序
前言 打包桌面应用程序实在是一个不常使用的东西,偶尔使用起来经常会忘东忘西的耽误时间,因此,这篇文章多以图片记录过程,也是用于备忘. 下载打包工具 C#打包桌面应用程序有很多种方法,这里介绍一种使用M ...
- Unity Shader 屏幕后效果——颜色校正
屏幕后效果指的是,当前整个场景图已经渲染完成输出到屏幕后,再对输出的屏幕图像进行的操作. 在Unity中,一般过程通常是: 1.建立用于处理效果的shader和临时材质,给shader脚本传递需要控制 ...
- linux 安装 websocketd
1.下载 wget https://github.com/joewalnes/websocketd/releases/download/v0.3.0/websocketd-0.3.0-linux_am ...
- python 基本数据类型之列表
#列表是可变类型,可以增删改查#字符串不可变类型,不能修改,只能生成新的值. #1.追加 # user_list = ['李泉','刘一','刘康','豆豆','小龙'] # user_list.ap ...
- Python笔记【3】_元组学习
#!/usr/bin/env/python #-*-coding:utf-8-*- #Author:LingChongShi #查看源码Ctrl+左键 ''' tuple:以圆括号“()”括起来,以“ ...
- 消息驱动式微服务:Spring Cloud Stream & RabbitMQ
1. 概述 在本文中,我们将向您介绍Spring Cloud Stream,这是一个用于构建消息驱动的微服务应用程序的框架,这些应用程序由一个常见的消息传递代理(如RabbitMQ.Apache Ka ...
- python logging模块使用总结
目录 logging模块 日志级别 logging.basicConfig()函数中的具体参数含义 format参数用到的格式化信息 使用logging打印日志到标准输出 使用logging.base ...