SDcard进行文件的读取
平时我们需要在手机上面存储想音频,视频等等的大文件,以前学过使用File进行存储(使用File操作进行存储);由于考虑到手机本身的存储空间小,这时候我们需要把文件存储在SDcard中,今天自己也学习了一下在android进行sdcard的存储使用方法;
首先如果要在程序中使用sdcard进行存储,我们必须要在AndroidManifset.xml文件进行下面的权限设置:
在AndroidManifest.xml中加入访问SDCard的权限如下:
<!-- 在SDCard中创建与删除文件权限 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<!-- 往SDCard写入数据权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
接着我们在使用SDcard进行读写的时候 会用到Environment类下面的几个静态方法
1: getDataDirectory() 获取到Androi中的data数据目录
2:getDownloadCacheDirectory() 获取到下载的缓存目录
3:getExternalStorageDirectory() 获取到外部存储的目录 一般指SDcard
4:getExternalStorageState() 获取外部设置的当前状态 一般指SDcard,
android系统中对于外部设置的状态,我们比较常用的应该是 MEDIA_MOUNTED(SDcard存在并且可以进行读写) MEDIA_MOUNTED_READ_ONLY (SDcard存在,只可以进行读操作) 当然还有其他的一些状态,可以在文档中进行查找到
5:getRootDirectory() 获取到Android Root路径
6:isExternalStorageEmulated() 返回Boolean值判断外部设置是否有效
7:isExternalStorageRemovable() 返回Boolean值,判断外部设置是否可以移除
【注】上面进行红色标记的方法,我们会常用
- <span style="color:#ff0000;">Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED) 代码中这句:我们对SDcard的状态进行判断,</span>
下面看实现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://download.csdn.net/detail/jiangqq781931404/4017475
SDcard进行文件的读取的更多相关文章
- Android 使用SDcard进行文件的读取
平时我们需要在手机上面存储想音频,视频等等的大文件,以前学过使用File进行存储(使用File操作进行存储):由于考虑到手机本身的存储空间小,这时候我们需要把文件存储在SDcard中,今天自己也学习了 ...
- Android中使用SDcard进行文件的读取
来自:http://www.cnblogs.com/greatverve/archive/2012/01/13/android-SDcard.html 平时我们需要在手机上面存储想音频,视频等等的大文 ...
- Android 文件的读取和写入
(1)openFileInput和openFileOutput的使用 文件的使用,注意最后要用finally给关闭掉. openFileOutput:(写入文件,如果没有文件名可以创建,这里不需要判断 ...
- excel to datatable (c#用NPOI将excel文件内容读取到datatable数据表中)
将excel文件内容读取到datatable数据表中,支持97-2003和2007两种版本的excel 1.第一种是根据excel文件路径读取excel并返回datatable /// <sum ...
- 条形码的应用三-----------从Excel文件中读取条形码
条形码的应用三------从Excel文件中读取条形码 介绍 上一篇文章,我向大家展示了生成多个条形码并存储到Excel文件中的一个方法.后来我又有了个想法:既然条码插入到excel中了,我可不可以从 ...
- java通过文件路径读取该路径下的所有文件并将其放入list中
java通过文件路径读取该路径下的所有文件并将其放入list中 java中可以通过递归的方式获取指定路径下的所有文件并将其放入List集合中.假设指定路径为path,目标集合为fileList,遍 ...
- [html5+java]文件异步读取及上传核心代码
html5+java 文件异步读取及上传关键代码段 功能: 1.多文件文件拖拽上传,file input 多文件选择 2.html5 File Api 异步FormData,blob上传,图片显示 3 ...
- Servlet从本地文件中读取图片,并显示在页面中
import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpSer ...
- PHP文件操作 读取与写入
基本知识: PHP文件系统是基于Unix系统的 文件数据基本类型:二进制数据.文本数据 文件输入流:数据从源文件到内存的流动 文件输出流:数据从内存保存到文件的流动 文件操作函数: >>& ...
随机推荐
- C语言中强制数据类型转换(转)
原文地址不详 字符型变量的值实质上是一个8位的整数值,因此取值范围一般是-128-127,char型变量也可以加修饰符unsigned,则unsigned char 型变量的取值范围是0-255(有些 ...
- Linux perf tools
http://techblog.netflix.com/2015/08/netflix-at-velocity-2015-linux.html
- eclipse cdt代码悬停窗口背景颜色设置(转载)
在eclipse中编写C++代码时,有一个很方便的功能,是当鼠标停放在某一个函数或变量上不同时,会出现一个悬停框,显示该函数或变量的声明 体.但是, 从Ubuntu 10.04之后,这个悬停框便出现了 ...
- struts2标签整理
在JSP2.1中#被用作了JSP EL(表达式语言)的特殊记好,所以对OGNL的使用可能导致问题, 一个简单的方法是禁用JSP2.1的EL特性,这需要修改web.xml文件: Java代码 ...
- 替换linux下的rm命令,并对-rf进行判断
补充了对根目录,以及-r -rf -f的判断 1.使用root用户在/usr/local目录创建.rmov.sh #!/bin/shPARA_CNT=$#TRASH_DIR="/data01 ...
- SSH三大框架合辑的搭建步骤
v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VM ...
- Oracle数据库——表的创建与管理
一.涉及内容 1.掌握使用OEM工具创建.修改和删除表. 2.掌握使用SQL语句创建.修改和删除表. 3.掌握使用SQL语句插入.修改和删除数据. 4.理解各种约束的作用,并能够使用OEM工具和SQL ...
- 在Windows上安装Maven
下载 Maven 最新版本. http://maven.apache.org/download.cgi 1,下载包后,解压到相应特定位置. 2,将 [解压位置]/bin 加入到Path 3, ...
- python分割数组里面重复的元素
c=[1,1,1,1,2,2,2,3,3,4,4,4,4,4,5,5,5,] a = [] x = [] for i in range(0,len(c)): if i + 1 < len(c): ...
- java编辑器eclipse如何更改jdk版本
第一步:右键点击项目选择properties 第二步:选择Java Build Path 第三步:选择libraries 第四步:选中当前jre再点击右侧Edit 第五步: ...