android 操作SD卡上的文件
(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卡上的文件的更多相关文章
- android学习笔记47——读写SD卡上的文件
读写SD卡上的文件 通过Context的openFileInput.openFileOutput来打开文件输入流.输出流时,程序打开的都是应用程序的数据文件夹里的文件,其存储的文件大小可能都比较有限- ...
- android 往sd卡中写入文件
在调用前需要判断是否有写入权限 Environment类提供了比较丰富的方法 static File getDataDirectory() 获得android data的目录. static File ...
- Android往SD卡上存储文件
public class DataActivity extends Activity { private EditText filenameText; private EditText content ...
- Android扫描SD卡中的文件
当android的系统启动的时候,系统会自动扫描sdcard内的多媒体文件,并把获得的信息保存在一个系统数据库中,以后在其他程序中如果想要访问多媒体文件的信息,其实就是在这个数据库中进行的,而不是直接 ...
- Android开发之SD卡上文件操作
1. 得到存储设备的目录:/SDCARD(一般情况下) SDPATH=Environment.getExternalStorageDirectory()+"/"; 2. 判断SD卡 ...
- Android SD卡上文件
1. 得到存储设备的目录:/SDCARD(一般情况下) SDPATH=Environment.getExternalStorageDirectory()+"/"; 2. 判断SD卡 ...
- android中读取SD卡上的数据
通过Context的openFileInput或者openFileOutput打开的文件输入输出流是操作应用程序的数据文件夹里的文件,这样存储的大小比较有限,为了更好的存取应用程序的大文件数据,应用程 ...
- Android 读写SD卡的文件
今天介绍一下Android 读写SD卡的文件,要读写SD卡上的文件,首先需要判断是否存在SD卡,方法: Environment.getExternalStorageState().equals(Env ...
- Android读写SD卡
SD卡的读写是我们在开发Android 应用程序过程中最常见的操作.下面介绍SD卡的读写操作方式: 1. 获取SD卡的根目录 String sdCardRoot = Environment.getEx ...
随机推荐
- React Native汇错归纳(持续更新中……)
1.2017-10-25: 报错信息:“Cannot find entry file index.android.js in any of roots…..” 解决方法: 1.首先从虚拟机中找问题:看 ...
- Java的I/O操作
一.概述 Java的IO支持通过java.io包下的类和接口来完成,在java.io包下主要有包括输入.输出两种IO流,每种输入输出流又可分为字节流和字符流两大类.从JDK1.4以后,Java在jav ...
- 《转》Python学习(15)-对文件的操作(二)
转自 http://www.cnblogs.com/BeginMan/p/3169020.html 一.文件系统 从系统角度来看,文件系统是对文件存储器空间进行组织和分配,负责文件存储并对存入的文件进 ...
- css笔记 - 张鑫旭css课程笔记之 margin 篇
margin - 人若犯我,我必犯人! [margin地址](https://www.imooc.com/learn/680) 一.margin与容器尺寸的关系 relative可定位,但是不改变容器 ...
- Node.js- sublime搭建node的编译环境
自动配置: 1.安装package control(见 http://www.cnblogs.com/padding1015/p/7763014.html) 2.sublime编辑器中,按快捷键:ct ...
- 删除RHSA文件方法
DEL /F /A /Q \\?\%1RD /S /Q \\?\%1新建一个批处理文件,包含上面两行代码,然后将要删除的文件拖放进里面就OK!
- Elasticsearch学习之多种查询方式
1. query string search 搜索全部商品:GET /ecommerce/product/_search took:耗费了几毫秒 timed_out:是否超时,这里是没有 _shard ...
- ELK系列六:Logstash的Filter模块
Date过滤 input { stdin{ codec => plain } } filter { date { match => ["message", " ...
- EF---延迟加载技术
延迟加载: 优点:只在需要的时候加载数据,不需要预先计划,避免了各种复杂的外连接.索引.视图操作带来的低效率问题 使用方式:两步 第一:在需要延迟加载的属性前加上virtual ,该属性的类型可以是任 ...
- 我的node+express小例子
启动index.js: var express = require("express"); var path = require("path"); var op ...