• 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 }
    复制代码
  • 相关阅读:
    STM32的GPIO工作原理 | 附电路图详细分析
    话说上拉电阻和下拉电阻
    Linux下MySQL数据库常用基本操作
    Linux acpi off学习的必要
    CentOS 6.2出现Disk sda contains BIOS RAID metadata解决方法
    降低开关电源纹波的三个要素
    什么是RFID? 射频识别技术的特点及工作原理!
    亲测可用的国内maven镜像
    Linux 删除文件夹和文件的命令
    [Gradle] 在 Eclipse 下利用 gradle 构建系统
  • 原文地址:https://www.cnblogs.com/dahaoheshan/p/6999471.html
Copyright © 2020-2023  润新知