读写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卡操作的更多相关文章

  1. WP8.1 Study12:文件压缩与Known Folder(包含SD卡操作)

    一.文件压缩 当应用程序保存和加载数据,它可以使用压缩. 1.使用 Windows.Storage.Compression.Compressor 压缩,获得一个Compressor stream. v ...

  2. Android 常见SD卡操作

    目录 Android 常见SD卡操作 Android 常见SD卡操作 参考 https://blog.csdn.net/mad1989/article/details/37568667. [0.] E ...

  3. SD卡操作相关的工具SDCardUtils

    SD卡操作相关的工具 package com.flyou.utils; import java.io.File; import android.os.Environment; import andro ...

  4. STM32L476应用开发之五:数据保存与SD卡操作

    便携式气体分析仪的特点就是离线运行.尽管是离线运行,但测试数据还是需要的,所以采取方式保存数据就是必须的.在本次项目中我们计划采用SD卡来保存数据. 1.硬件设计 该读卡器整合 SD 卡规范和 FAT ...

  5. File存对象--android 的File存储到SD卡();

    方法1:android File存对象--File存储到SD卡(); 1.保存对象到本地或SD卡需要注意的是,要保存的对象(OAuthV1)一定要实现了Serializable接口.实现了Serial ...

  6. [笔记]SD卡相关资料

    ESD静电放电模块 我知道的flash分为两种NOR flash和NAND flash,NOR falsh容量一般为1~16M用于单片机代码存储,NAND flash最小的是8M最大的现在听说有90G ...

  7. 第36章 SDIO—SD卡读写测试

    第36章     SDIO—SD卡读写测试 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/f ...

  8. 玩转X-CTR100 l STM32F4 l SD卡FatFs文件系统

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] X-CTR100控制器具有SD卡接口,本教程使用免费 ...

  9. Android获取SD卡路径及SDCard内存的方法

    这篇文章主要介绍了Android获取SD卡路径及SDCard内存的方法,较为详细的分析了Android针对SD卡操作所涉及的类及其具体函数功能,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了A ...

随机推荐

  1. python合并多个文件

    import os filelist=os.listdir('/root/Music') for item in filelist: print item newfile=open('/root/Mu ...

  2. MCtalk对话尚德机构:AI讲师,假套路还是真功夫?

    一间容纳百人的被挤得满满的教室,老师讲.学生听.线下课堂曾是职业教育最普遍的形式.随着移动互联网的普及,大量的学习行为逐渐转化到线上进行,传统教育机构如何抓住这轮技术转型的契机,而不是被它吞噬? 近日 ...

  3. auth-booster配置和使用(yii1.5)

    auth-booster这个是一个yii框架扩展中的一个模块.是非常好用的(但是里面的说明都是英文的,所以国人用还需要改一点里面的汉化) 1.下载auth-booster这个:http://www.y ...

  4. Codeforces Round #567 (Div. 2)A

    A. Chunga-Changa 题目链接:http://codeforces.com/contest/1181/problem/A 题目 Soon after the Chunga-Changa i ...

  5. C语言类型转换

    int/float to string/array: C语言提供了几个标准库函数,可以将任意类型(整型.长整型.浮点型等)的数字转换为字符串,下面列举了各函数的方法及其说明. itoa():将整型值转 ...

  6. 如何让使用create-react-app构建的项目在build过程中如何不生成.map文件

    避免create-react-app的项目在build的过程中生成 .map 文件的方法:主要是更改 package.json 里面的 build 命令!正式进入修改步骤前,推荐安装 cross-en ...

  7. c++学习书籍推荐《C++程序设计语言(特别版)》下载

    百度云及其他网盘下载地址:点我 编辑推荐 <C++程序设计语言(特别版•十周年中文纪念版)>编辑推荐:十周年纪念版,体味C++语言的精妙与魅力,享受与大师的心灵对话.1979年,Biarn ...

  8. wcf服务编程(一)

    步骤一:定义契约 [ServiceContract] //定义服务契约 需要引用System.ServiceModel public interface ICalculator { [Operatio ...

  9. java截取避免空字符丢失

    1. 场景描述 数据后端是Hbase等nosql数据库,返回的数据以逗号分隔,java后端获取数据后,需要新增组装数据后再返回给前端. 2. 问题解决 2.1 问题定位 本来用的java的split进 ...

  10. Mac上pycharm集成pyspark

    前提: 1.已经安装好spark.我的是spark2.2.0. 2.已经有python环境,我这边使用的是python3.6. 一.安装py4j 使用pip,运行如下命令: pip install p ...