(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. 安装win7到移动硬盘

    jpg改rar http://www.360doc.com/content/16/0816/10/19373891_583556875.shtml

  2. Windows驱动中通过MDL实现用户态与核心态共享内存

    Windows驱动跑在核心态(Kernel mode),驱动的调用者跑在用户态.如何使用户态进程与核心态驱动共享内存呢 ? 我们知道32位Windows中,默认状态下虚拟空间有4G,前2G是每个进程私 ...

  3. 【EF框架】EF DBFirst 快速生成数据库实体类 Database1.tt

    现有如下需求,数据库表快速映射到数据库实体类 VS给出的两个选择都有问题,并不能实现,都是坑啊 EF .x DbContext 生成器 EF .x DbContext 生成器 测试结果如下 生成文件 ...

  4. WP8.1学习系列(第十六章)——交互UX之命令模式

    命令模式   在本文中 命令类型 命令放置 相关主题 你可以在应用商店应用的几个曲面中放置命令和控件,包括应用画布.弹出窗口.对话框和应用栏.在正确的时间选择合适的曲面可能就是易于使用的应用和很难使用 ...

  5. 【线程】Thread中的join介绍

    因为sleep.wait.join等阻塞,可以使用interrupted exception异常唤醒. 一.作用 Thread类中的join方法的主要作用就是同步,它可以使得线程之间的并行执行变为串行 ...

  6. 告知你不为人知的UDP-连接性和负载均衡

    版权声明:本文由黄日成原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/812444001486438028 来源:腾云阁 h ...

  7. Android 反编译Apk提取XML文件

    Apktool https://ibotpeaches.github.io/Apktool/install/ 下载地址:Apktool https://bitbucket.org/iBotPeache ...

  8. LeetCode 77 Combinations(排列组合)

    题目链接:https://leetcode.com/problems/combinations/#/description    Problem:给两个正数分别为n和k,求出从1,2.......n这 ...

  9. 使用java实现的socket代理(支持socket4和socket5)

    代码如下: import java.io.*; import java.net.InetAddress; import java.net.ServerSocket; import java.net.S ...

  10. Unity3D笔记十九 持久化数据

    1.PlayerPrefs类(生命周期???) 1.1 保存与读取数据 在C#中类似缓存.Cookie.Session等保存数据的,但是有点区别的是在C#中如果在取值时没有取到默认值则返回值是NULL ...