博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 使用SDcard进行文件的读取
阅读量:5905 次
发布时间:2019-06-19

本文共 4109 字,大约阅读时间需要 13 分钟。

  平时我们需要在手机上面存储想音频,视频等等的大文件,以前学过使用File进行存储();由于考虑到手机本身的存储空间小,这时候我们需要把文件存储在SDcard中,今天自己也学习了一下在android进行sdcard的存储使用方法;

    首先如果要在程序中使用sdcard进行存储,我们必须要在AndroidManifset.xml文件进行下面的权限设置:

    在AndroidManifest.xml中加入访问SDCard的权限如下:

 

 

接着我们在使用SDcard进行读写的时候 会用到Environment类下面的几个静态方法 

 

  1: getDataDirectory()  获取到Androi中的data数据目录   2:getDownloadCacheDirectory()  获取到下载的缓存目录   3:getExternalStorageDirectory()  获取到外部存储的目录 一般指SDcard  4:getExternalStorageState() 获取外部设置的当前状态 一般指SDcard,

 

   android系统中对于外部设置的状态,我们比较常用的应该是 (SDcard存在并且可以进行读写)   (SDcard存在,只可以进行读操作)  当然还有其他的一些状态,可以在文档中进行查找到 

 

  5:getRootDirectory()  获取到Android Root路径   6:isExternalStorageEmulated() 返回Boolean值判断外部设置是否有效   7:isExternalStorageRemovable()  返回Boolean值,判断外部设置是否可以移除

 

 【注】上面进行红色标记的方法,我们会常用

 

Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)  代码中这句:我们对SDcard的状态进行判断,

 

下面看实现SDCard进行文件读写操作的Demo:

 

package com.jiangqq.sdcard;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import android.app.Activity;import android.content.Context;import android.os.Bundle;import android.os.Environment;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class SDcardActivity extends Activity {    private Button bt1, bt2;    private EditText et1, et2;    private static final String FILENAME = "temp_file.txt";    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        bt1 = (Button) this.findViewById(R.id.bt1);        bt2 = (Button) this.findViewById(R.id.bt2);        et1 = (EditText) this.findViewById(R.id.et1);        et2 = (EditText) this.findViewById(R.id.et2);        bt1.setOnClickListener(new MySetOnClickListener());        bt2.setOnClickListener(new MySetOnClickListener());    }    private class MySetOnClickListener implements OnClickListener {        @Override        public void onClick(View v) {            File file = new File(Environment.getExternalStorageDirectory(),                    FILENAME);            switch (v.getId()) {            case R.id.bt1:// 使用SDcard写操作                if (Environment.getExternalStorageState().equals(                        Environment.MEDIA_MOUNTED)) {                    try {                        FileOutputStream fos = new FileOutputStream(file);                        fos.write(et1.getText().toString().getBytes());                        fos.close();                        Toast.makeText(SDcardActivity.this, "写入文件成功",                                Toast.LENGTH_LONG).show();                    } catch (Exception e) {                        Toast.makeText(SDcardActivity.this, "写入文件失败",                                Toast.LENGTH_SHORT).show();                    }                } else {                    // 此时SDcard不存在或者不能进行读写操作的                    Toast.makeText(SDcardActivity.this,                            "此时SDcard不存在或者不能进行读写操作", Toast.LENGTH_SHORT).show();                }                break;            case R.id.bt2:// 使用SDcard读操作                if (Environment.getExternalStorageState().equals(                        Environment.MEDIA_MOUNTED)) {                    try {                        FileInputStream inputStream = new FileInputStream(file);                        byte[] b = new byte[inputStream.available()];                        inputStream.read(b);                        et2.setText(new String(b));                        Toast.makeText(SDcardActivity.this, "读取文件成功",                                Toast.LENGTH_LONG).show();                    } catch (Exception e) {                        Toast.makeText(SDcardActivity.this, "读取失败",                                Toast.LENGTH_SHORT).show();                    }                } else {                    // 此时SDcard不存在或者不能进行读写操作的                    Toast.makeText(SDcardActivity.this,                            "此时SDcard不存在或者不能进行读写操作", Toast.LENGTH_SHORT).show();                }                break;            }        }    }}

 

下面截图效果:

Demo下载链接

 

 

 

 

 

转载地址:http://rgdpx.baihongyu.com/

你可能感兴趣的文章
3-继承
查看>>
海归千千万 为何再无钱学森
查看>>
vue2.0 仿手机新闻站(六)详情页制作
查看>>
JSP----九大内置对象
查看>>
Java中HashMap详解
查看>>
delphi基本语法
查看>>
260. Single Number III
查看>>
Hadoop生态圈-Kafka的完全分布式部署
查看>>
[MODx] Build a CMP (Custom manager page) using MIGX in MODX 2.3 -- 1
查看>>
jQuery自动完成点击html元素
查看>>
[算法]基于分区最近点算法的二维平面
查看>>
webpack多页应用架构系列(七):开发环境、生产环境傻傻分不清楚?
查看>>
笨办法学C 练习1:启用编译器
查看>>
树的总结--树的性质(树的深度) leetcode
查看>>
【Android游戏开发之六】在SurfaceView中添加组件!!!!并且相互交互数据!!!!...
查看>>
linux 将大文件分成小文件
查看>>
CCNA- 距离矢量路由协议学习
查看>>
企业实践用户邮箱导入/导出(第2部分)
查看>>
如何学习Linux命令-初级篇
查看>>
从Oracle Public Yum为Oracle Linux建立本地的Yum源
查看>>