(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. React Native汇错归纳(持续更新中……)

    1.2017-10-25: 报错信息:“Cannot find entry file index.android.js in any of roots…..” 解决方法: 1.首先从虚拟机中找问题:看 ...

  2. Java的I/O操作

    一.概述 Java的IO支持通过java.io包下的类和接口来完成,在java.io包下主要有包括输入.输出两种IO流,每种输入输出流又可分为字节流和字符流两大类.从JDK1.4以后,Java在jav ...

  3. 《转》Python学习(15)-对文件的操作(二)

    转自 http://www.cnblogs.com/BeginMan/p/3169020.html 一.文件系统 从系统角度来看,文件系统是对文件存储器空间进行组织和分配,负责文件存储并对存入的文件进 ...

  4. css笔记 - 张鑫旭css课程笔记之 margin 篇

    margin - 人若犯我,我必犯人! [margin地址](https://www.imooc.com/learn/680) 一.margin与容器尺寸的关系 relative可定位,但是不改变容器 ...

  5. Node.js- sublime搭建node的编译环境

    自动配置: 1.安装package control(见 http://www.cnblogs.com/padding1015/p/7763014.html) 2.sublime编辑器中,按快捷键:ct ...

  6. 删除RHSA文件方法

    DEL /F /A /Q \\?\%1RD /S /Q \\?\%1新建一个批处理文件,包含上面两行代码,然后将要删除的文件拖放进里面就OK!

  7. Elasticsearch学习之多种查询方式

    1. query string search 搜索全部商品:GET /ecommerce/product/_search took:耗费了几毫秒 timed_out:是否超时,这里是没有 _shard ...

  8. ELK系列六:Logstash的Filter模块

    Date过滤 input { stdin{ codec => plain } } filter { date { match => ["message", " ...

  9. EF---延迟加载技术

    延迟加载: 优点:只在需要的时候加载数据,不需要预先计划,避免了各种复杂的外连接.索引.视图操作带来的低效率问题 使用方式:两步 第一:在需要延迟加载的属性前加上virtual ,该属性的类型可以是任 ...

  10. 我的node+express小例子

    启动index.js: var express = require("express"); var path = require("path"); var op ...