`

android sd卡读写 附源码

阅读更多
将文件存在sd卡中和存在手机中的思路相同就是路径不同,注意看类中的到sd卡路径的注释
package cn.lee.data;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

import cn.lee.Manager.DataManager;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class AboutDateActivity extends Activity {
	private EditText fileNameEditText;
	private EditText fileContentEditText;
	private EditText readfileContentEditText;
	private Button button;
	private Button readButton;
	private static final String TAGSTRING = "AboutDateActivity";

	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		button = (Button) this.findViewById(R.id.button);
		readButton = (Button) this.findViewById(R.id.readButton);
		fileNameEditText = (EditText) this.findViewById(R.id.fileName);
		fileContentEditText = (EditText) this.findViewById(R.id.fileContent);
		readfileContentEditText = (EditText) this
				.findViewById(R.id.readfileContent);

		// 读取
		readButton.setOnClickListener(onClickListener);
		// 保存
		button.setOnClickListener(onClickListener);
	}

	/**
	 * 由于这个内部实现类是一个接口的实例 所以这里把他提取出来 作为一个成员变量 2010-04-18
	 */
	private View.OnClickListener onClickListener = new View.OnClickListener() {
		/**
		 * 由于button的父类是view 所以这里的onclick的参数传来的view v就可以找到这个button
		 */
		public void onClick(View v) {
			Button button = (Button) v;// 将父类view强转成子类button
			int info = R.string.sus;
			String fileNameString = fileNameEditText.getText().toString();
			
			/**
			 * 判断sd卡是否存在 Environment.getExternalStorageState() 得到sd卡当前的状态
			 * 
			 * getExternalStorageState() returns MEDIA_MOUNTED if the
			 * media is present and mounted at its mount point with
			 * read/write access. 如果返回 MEDIA_MOUNTED表示外部存储设备存在。并且有读写的权限(因为sd卡有写保护 如果写保护关闭也是没有权限读写的)
			 */
			
			if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
				if ("".equals(fileNameString)) {
					info = R.string.sdNotExit;
				} else {
					FileOutputStream fileOutputStream = null;
					FileInputStream fileInputStream = null;
					try {
						/**
						 * Environment.getExternalStorageDirectory();
						 * 得到外存储设备的路径
						 * 
						 */
						File file = new File(Environment.getExternalStorageDirectory(),fileNameString);
						
						switch (button.getId()) {
						case R.id.button: {// 保存
							String fileContentString = fileContentEditText.getText().toString();
							
							fileOutputStream = new FileOutputStream(file);
							DataManager.saveDate(fileOutputStream,fileContentString);
							break;
						}

						case R.id.readButton: {//读取
							fileInputStream = new FileInputStream(file);
							String contentString = DataManager.readDate(fileInputStream);
							readfileContentEditText.setText(contentString);
							break;
						}
						default:
							break;
						}

					} catch (Exception e) {
						// TODO Auto-generated catch block
						Log.i(TAGSTRING, e.toString());
						info = R.string.infor;
					} finally {
						try {
							if (fileOutputStream != null) {
								fileOutputStream.close();
							}
							if (fileInputStream != null) {
								fileInputStream.close();
							}

						} catch (IOException e) {

							Log.i(TAGSTRING, e.toString());
							info = R.string.infor;
						}
					}

				}
			} else {
				info = R.string.infor;
			}
			Toast.makeText(AboutDateActivity.this, info, 1).show();
		}

	};
}
11
2
分享到:
评论
2 楼 lina3427 2012-03-23  
好文章,谢谢朋友
1 楼 jiangsuwwj 2012-02-25  
好文章,写的不错,赞一个。

相关推荐

    Android应用源码SdCard读写文件实例

    Android应用源码SdCard读写文件实例

    android文件读写源码

    android文件读写源码 可以写文档,然后保存文件到手机中也可以保存的sd卡中,可以设置文档的读写等访问权限

    安卓Android源码——SdCard读写文件实例.zip

    安卓Android源码——SdCard读写文件实例.zip

    android开发实例-sdcard文件读写及WIFI检测

    android开发实例-sdcard文件读写 WIFI检测、下载文件等 开发环境:JAVA SDK1.7及android最新的开发包

    使用FileObserver监听SD卡下文件变动的小栗子~

    根据"如数家珍"app的公开源码修改的小栗子,能简单实现sd卡的文件修改状态监听,亲测可用,初学者可以学习一下~ 共同进步~

    疯狂Android讲义源码

     8.2.2 读写SD卡上的文件 314  8.3 SQLite数据库 321  8.3.1 简介SQLiteDatabase 321  8.3.2 创建数据库和表 323  8.3.3 使用SQL语句操作SQLite  数据库 323  8.3.4 使用sqlite3工具 325  8.3.5 使用特定...

    Android文件读写包含SDCard

    NULL 博文链接:https://xiva.iteye.com/blog/852876

    Android N获取外置SD卡或挂载U盘路径的方法

    在Android N上并没有提供直接的方法获取外置SD卡或挂载U盘路径,可以通过下面方法获取内置sd卡路径 Environment.getExternalStorageDirectory().getAbsolutePath(); 通过查看getExternalStorageDirectory源码发现,...

    老罗android视频开发源码和ppt经典

    十、android存储数据和文件 10.1 android读写sdcard 10.2 SharedPreference共享参数 10.3 android操作数据库一 10.4 android操作数据库二 10.5 android操作数据库三 10.6 android操作数据库四 10.7 android操作...

    Android应用源码录音、播放功能最佳学习项目

    本站之前也介绍过几个带有录音功能的项目源码,可以点击这里查看或者直接在本站搜索“录音”就可以找到。...另外录音以后开始以后音频文件使用arm格式储存在SD卡中。 涉及模块&技术 监听器 文件读写 录音 音频播放 ...

    android studio安卓表情包编辑器(源码+素材)

    使用到的知识点: 1.RecyclerView 2.截图 3.sd卡读写 4.广播通知图库更新相册

    Android手机输入法手势识别源代码

     提醒:默认存到SD卡中,所以别忘记在AndroidMainfest.xml加上SD卡读写权限!  关于两种方式创建模拟器的SDcard在【Android2D游戏开发之十】有详解   if (Environment.getExternalStorageState() != null) {// ...

    JAVA上百实例源码以及开源项目源代码

    Java 源码包 Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来...

    Android输入法手势识别例子代码.rar

    默认存到SD卡中,所以别忘记在AndroidMainfest.xml加上SD卡读写权限!测试时请您在紧凑的时间内用两笔划来完成一个手势!  Himi提示:手势超过9个我做了删除所有手势的操作,为了界面整洁一些!输入法手势练习~(*^...

    JAVA上百实例源码以及开源项目

    此时此景,笔者只专注Android、Iphone等移动平台开发,看着这些源码心中有万分感慨,写此文章纪念那时那景! Java 源码包 Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这...

    万岳在线教育系统源码v1.1.4 ManyuehOnlineEducationSystem.rar

    万岳在线教育系统源码v1.1.4 源码描述: 一、万岳在线教育系统源码 搭建迅速,为您提供完善的线上教育解决方案 源码开源,可定制开发,多终端,多版本,多选择 二、产品介绍 万岳在线教育系统,是一款集...

    黑马程序员 安卓学院 万元哥项目经理 分享220个代码实例

    |--android 获取sd卡状态 |--android 设置apn |--android 调节屏幕亮度 |--android 资源uri |--android 还原短信 |--android 重启 |--android中anim文件特效 |--app信息menifest获取(如版本号) |--AsyncQueryHandler...

    可检测外置sd路径和读写功能

    但是还有一问题,4.0以后外置sd的读写权限变成了系统权限,所以如果不是系统应用就不能读写外置sd卡。不过我获取到外置sd卡路径后,发现是可以读写的,不知道是不是设置了setWritable(true)的原因。 有什么问题大家...

Global site tag (gtag.js) - Google Analytics