(1)说明:操作SD卡上的文件须要增加下面权限

 在SD卡上创建和删除文件权限

 <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>

在SD卡上写入数据的权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

在sd卡上的文件操作和我上一篇文章几乎相同,假设有不懂的能够看我的上一篇文章

 

android 读写文件演示样例

http://blog.csdn.net/liuzuyi200/article/details/25049183

仅仅只是多加了推断SD卡是否存在的方法

Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)

(2)布局文件

<?

xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" > <RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" > <TextView
android:id="@+id/label_01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/name"
android:textSize="20dp" /> <EditText
android:id="@+id/filename"
android:layout_width="160dp"
android:layout_height="wrap_content"
android:layout_alignTop="@id/label_01"
android:layout_toRightOf="@id/label_01" />
</RelativeLayout> <TextView
android:id="@+id/label_02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/neirong" /> <EditText
android:id="@+id/content"
android:layout_width="fill_parent"
android:layout_height="120px"
android:ems="10" > <requestFocus />
</EditText> <LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" > <Button
android:id="@+id/savebutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="right"
android:text="@string/save" /> <Button
android:id="@+id/readbutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="right"
android:text="@string/read" />
</LinearLayout> <TextView
android:id="@+id/textcontent"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0.10" /> </LinearLayout>

(3)代码

package com.liuzuyi.file;

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream; import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBar;
import android.support.v4.app.Fragment;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import android.os.Build; public class MainActivity extends Activity { private EditText filename;
private EditText context;
private TextView textcontent;
private static final String TAG="simplefile"; protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
filename=(EditText)this.findViewById(R.id.filename);
context=(EditText)this.findViewById(R.id.content);
textcontent=(TextView)this.findViewById(R.id.textcontent);
Button savebtn=(Button)this.findViewById(R.id.savebutton);
Button viewbtn=(Button)this.findViewById(R.id.readbutton);
savebtn.setOnClickListener(l);
viewbtn.setOnClickListener(l); }
private View.OnClickListener l =new OnClickListener() {
public void onClick(View v) { Button button =(Button)v;
//过滤掉开头结尾的空格
String namestr = filename.getText().toString().trim();
String contentstr =context.getText().toString(); switch ( button.getId() ) {
case R.id.savebutton:
String resid_s ="success";
OutputStream fileos = null;
try {
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED))
{
FileOutputStream outstream = new FileOutputStream("/sdcard/"+namestr+".txt");
outstream.write(contentstr.getBytes() );
outstream.close();
}
else
return ;
} catch (Exception e) {
resid_s = "faile";
e.printStackTrace();
}
Toast.makeText(MainActivity.this, resid_s,Toast.LENGTH_LONG).show();
Log.i(TAG, namestr);
Log.i(TAG, contentstr);
break;
case R.id.readbutton:
String resid_v ="success";
InputStream filsIs= null;
String contentst = null;
try {
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED))
{
File SDCardDir=Environment.getExternalStorageDirectory();
File saveFile = new File(SDCardDir,namestr+".txt");
FileInputStream instream = new FileInputStream(saveFile);
ByteArrayOutputStream Ostream = new ByteArrayOutputStream(); byte[] buffer = new byte[1024];
int len = -1;
while( (len = instream.read(buffer)) != -1 )
{
Ostream.write(buffer,0,len);
}
contentst = Ostream.toString();
Ostream.close();
instream.close();
}
else
{
Toast.makeText(MainActivity.this, "SD卡不存在", Toast.LENGTH_LONG).show();
} } catch (Exception e) {
resid_v ="faile";
e.printStackTrace(); }
textcontent.setText( contentst);
Log.i(TAG, contentst);
Toast.makeText(MainActivity.this, resid_v,Toast.LENGTH_LONG).show();
Log.i(TAG,namestr);
break;
}
}
};
}

android 操作SD卡上的文件的更多相关文章

  1. android学习笔记47——读写SD卡上的文件

    读写SD卡上的文件 通过Context的openFileInput.openFileOutput来打开文件输入流.输出流时,程序打开的都是应用程序的数据文件夹里的文件,其存储的文件大小可能都比较有限- ...

  2. android 往sd卡中写入文件

    在调用前需要判断是否有写入权限 Environment类提供了比较丰富的方法 static File getDataDirectory() 获得android data的目录. static File ...

  3. Android往SD卡上存储文件

    public class DataActivity extends Activity { private EditText filenameText; private EditText content ...

  4. Android扫描SD卡中的文件

    当android的系统启动的时候,系统会自动扫描sdcard内的多媒体文件,并把获得的信息保存在一个系统数据库中,以后在其他程序中如果想要访问多媒体文件的信息,其实就是在这个数据库中进行的,而不是直接 ...

  5. Android开发之SD卡上文件操作

    1. 得到存储设备的目录:/SDCARD(一般情况下) SDPATH=Environment.getExternalStorageDirectory()+"/"; 2. 判断SD卡 ...

  6. Android SD卡上文件

    1. 得到存储设备的目录:/SDCARD(一般情况下) SDPATH=Environment.getExternalStorageDirectory()+"/"; 2. 判断SD卡 ...

  7. android中读取SD卡上的数据

    通过Context的openFileInput或者openFileOutput打开的文件输入输出流是操作应用程序的数据文件夹里的文件,这样存储的大小比较有限,为了更好的存取应用程序的大文件数据,应用程 ...

  8. Android 读写SD卡的文件

    今天介绍一下Android 读写SD卡的文件,要读写SD卡上的文件,首先需要判断是否存在SD卡,方法: Environment.getExternalStorageState().equals(Env ...

  9. Android读写SD卡

    SD卡的读写是我们在开发Android 应用程序过程中最常见的操作.下面介绍SD卡的读写操作方式: 1. 获取SD卡的根目录 String sdCardRoot = Environment.getEx ...

随机推荐

  1. Ubuntu下Eclipse的安装方法

    1. 下载jre,eclipse,cdt 其中jre是java运行环境,eclipse需要先装jre,才可能运行,cdt是在eclipse中运行c\c++程序的插件. 1.1 下载jre 网址是:ja ...

  2. 【angularjs基础】ng-repeat嵌套循环报错angular.min.js:89 Error: [ngRepeat:dupes]

    再写嵌套循环的时候,提示一个错误 angular.min.js: Error: [ngRepeat:dupes] 代码如下 <table class="GridViewTable mt ...

  3. WP8.1学习系列(第三章)——磁贴和锁屏通知

    一.创建默认磁贴 创建默认磁贴,不需要任何代码只有制作几张图片就可以了. 1.创建工程之后,在工程目录找到package.appxmanifest,打开它. 2.在应用程序栏,通知选项,选择徽章和图块 ...

  4. Adobe Acrobat Reader DC For Android 下载

    http://get.adobe.com/cn/reader/otherversions/ 点击“立即下载”按钮,即可开始下载到PC端

  5. Win 7打开任务管理器的几种方法

    1. 按住Ctrl和Alt键和Delete键 2. 快速启动栏打开win7任务管理器 3. Ctrl键+Shift键+Esc键的组合键 4. 桌面新建一个文本文档也叫记事本,打开,输入“C:\Wind ...

  6. sort与asort与ksort区别

    sort只依据值从小到大排序,键值不参与排序 asort依据值排序,键值参与排序 ksort依据键值排序,值参与排序 sort只依据值从小到大排序,键值不参与排序. 例 <?php $arr=a ...

  7. 【咸鱼教程】TextureMerger1.6.6 一:Egret MovieClip的制作和使用

    几个月没写代码了.然后突然用到TextureMerger,发现不会用序列图做动画了... 于是写下过程,以防忘记... MovieClip主要是用于游戏中的动画制作和播放.支持swf.gif.序列图等 ...

  8. SDK Location not found Android Studio + Gradle

    extends: http://stackoverflow.com/questions/19272127/sdk-location-not-found-android-studio-gradle I ...

  9. 判断String 中文混输 长度

    extends:http://www.tuicool.com/articles/EB36Jv public static int calculateLength(String etString) { ...

  10. WF的简单使用

    WWF(Windows Workflow Foundation):是微软提供的工作流技术,工作流就是对工作流程的规范和抽象.主要有三个部分Activity(活动).Runtime(工作流运行时)和To ...