`

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平台上,对SD卡(外部存储)进行读写文件是常见的操作,尤其对于需要存储大量数据或资源的应用来说更是必不可少。本实例将探讨如何在Android应用中实现SdCard的读取和写入功能,这涉及到Android的权限管理...

    安卓Android源码——开发之SD卡的使用.zip

    - Android源码中,`android.os.storage`包包含了与外部存储交互的相关类,如`StorageManager`,可以用于挂载、卸载、查询SD卡状态等操作。 - `MediaScannerConnection`类用于扫描新添加或修改的文件,使其在媒体库...

    Android NFC 读写模式源码

    在这个"Android NFC 读写模式源码"项目中,我们可以深入理解如何利用这些API来实现NFC标签的读取和写入操作。 首先,我们要了解NFC的三种工作模式:读卡器/卡片模拟模式、点对点模式和卡-emulation模式。在本项目中...

    android文件读写源码

    本文将深入解析Android文件读写源码,探讨如何在Android应用中创建、读取、修改和删除文件,并涉及权限管理和存储位置的选择。 首先,Android提供了`java.io`和`java.nio`两个包来支持文件操作。在`java.io`包中,`...

    android中复制资源文件中的数据库文件到sd卡或内存源码

    在Android开发中,有时我们需要将预置的数据库文件与应用一起发布,并在应用程序首次启动时将其复制到外部存储(如SD卡)或内部存储(内存)中,以便于后续的操作和使用。这样的需求通常出现在那些需要提供初始数据...

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

    在Android平台上,对SD卡(Secure Digital Card)进行文件读写是常见的操作,尤其是在开发应用程序时,需要存储或检索用户数据、资源文件等。本文将深入解析“Android应用源码SdCard读写文件实例”中的关键知识点,...

    Android 开发之 SD卡的使用.zip

    本项目源码提供了一种实际应用中的示例,帮助开发者理解和掌握Android如何与外部存储(如SD卡)进行交互。下面我们将详细探讨Android SD卡的使用知识点。 1. **权限配置** 在AndroidManifest.xml文件中,你需要...

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

    在安卓(Android)平台上,对SdCard(外部存储设备)进行读写文件是应用程序开发中的常见操作。这里,我们将详细探讨如何通过源码实现这一功能,并了解相关的知识点。 首先,安卓系统为开发者提供了`java.io`和`...

    Android 文件管理器源码

    10. **SD卡挂载管理**:Android设备可能支持外部存储(如SD卡),源码需要正确处理挂载和卸载过程,确保在状态变化时能够正确读取文件。 深入研究这样的开源文件管理器源码,开发者可以学习到Android系统级别的文件...

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

    在Android平台上,对SDCard(外部存储)进行读写文件是一项常见的操作,尤其在开发应用程序时,这可能是存储用户数据、缓存或者大型文件的必要途径。本实例源码提供了如何在Android应用中实现SDCard读写文件的方法,...

    知识共享-Android之sd卡浏览器源码(雷惊风)

    在Android 6.0(API级别23)之前,应用默认拥有读写外部存储(如SD卡)的权限。但从6.0开始,用户需要在运行时动态授予这些权限。因此,在处理SD卡文件时,我们需要检查`Manifest.xml`中是否包含`READ_EXTERNAL_...

    安卓Android源码——精典源码之开发之SD卡的使用.zip

    在安卓(Android)系统中,SD卡(Secure Digital Card)被广泛用于存储应用程序的数据、用户媒体文件和其他资源。本文将深入探讨如何在Android源码中使用SD卡进行开发,主要涉及以下几个方面: 1. **权限管理**:在...

    android通过NFC读写数据

    标题“android通过NFC读写数据”涉及到的是Android平台下使用近场通信(Near Field Communication, NFC)技术来实现数据交换的功能。NFC是一种短距离无线通信技术,允许电子设备之间进行非接触式点对点数据传输。在...

    Android 界面美观天气应用源码.zip

    这涉及到Android的权限模型,特别是对于网络访问和读写存储等敏感权限的处理。 最后,源码可能还包括了通知服务,使得应用能在特定天气条件或定时情况下向用户发送通知。这将涉及Android的Notification API和...

    Android小米文件管理器源码

    文件管理器可能需要监听系统广播,如插入/移除SD卡,这时会用到`BroadcastReceiver`。 5. **多线程与AsyncTask**:对于耗时操作如文件读写、网络请求,源码中可能采用了多线程(如`Thread`、`Handler`)或异步任务...

    Android 开发之 SD卡的使用源码.rar

    在Android开发中,SD卡(Secure Digital Card)的使用是一个重要的环节,因为它为应用程序提供了额外的存储空间。本文将深入探讨如何在Android中操作SD卡,包括读写文件、检查SD卡状态以及处理权限问题。 首先,...

    Android 文件资源管理器源码

    7. **权限检查**:针对特定任务(如网络访问、读写SD卡等)进行权限检查。 源码分析可以帮助我们深入理解Android系统如何处理文件操作和后台任务,这对于开发者来说是提升技能和解决问题的重要参考资料。通过阅读和...

    安卓Android源码——判断双SD卡_CheckDoubleSDCard.rar

    这个压缩包“安卓Android源码——判断双SD卡_CheckDoubleSDCard.rar”提供了实现这一功能的源代码。下面将详细解释相关知识点。 1. 外部存储访问: 安卓系统提供了`android.os.Environment`类,用于获取与设备外部...

    安卓Android源码——安卓Android学习——数据存储.rar

    4. **外部存储**:对于大文件或者需要共享给其他应用的数据,可以使用外部存储(通常是SD卡)。但需要注意的是,从Android 6.0(API级别23)开始,需要请求WRITE_EXTERNAL_STORAGE权限。 5. **Content Provider**:...

    安卓Android源码——开发 SD卡的使用.zip

    对于开发者而言,理解如何在Android源码层面上进行SD卡的读写和管理至关重要。本篇将深入探讨在Android开发中,如何有效地利用SD卡,并提供相关的源码分析。 1. **权限设置** 在AndroidManifest.xml文件中,为应用...

Global site tag (gtag.js) - Google Analytics