android 手机SD卡读写操作(以txt文本为例)实现步骤

1、首先对manifest注册SD卡读写权限

要说明一下,我这里没有用MainActivity.class作为软件入口

复制代码 代码如下:

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="com.tes.textsd"

android:versionCode="1"

android:versionName="1.0" >

<uses-sdk

android:minSdkVersion="8"

android:targetSdkVersion="16" />

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

<application

android:allowBackup="true"

android:icon="@drawable/ic_launcher"

android:label="@string/app_name"

android:theme="@style/AppTheme" >

<activity

android:name="com.tes.textsd.FileOperateActivity"

android:label="@string/app_name" >

<intent-filter>

<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />

</intent-filter>

</activity>

</application>

</manifest>

2、创建一个对SD卡中文件读写的类

复制代码 代码如下:

FileHelper.java

/**

* @Title: FileHelper.java

* @Package com.tes.textsd

* @Description: TODO(用一句话描述该文件做什么)

* @author Alex.Z

* @date 2013-2-26 下午5:45:40

* @version V1.0

*/

package com.tes.textsd;

import java.io.DataOutputStream;

import java.io.File;

import java.io.FileOutputStream;

import java.io.FileWriter;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.IOException;

import android.content.Context;

import android.os.Environment;

public class FileHelper {

private Context context;

/** SD卡是否存在**/

private boolean hasSD = false;

/** SD卡的路径**/

private String SDPATH;

/** 当前程序包的路径**/

private String FILESPATH;

public FileHelper(Context context) {

this.context = context;

hasSD = Environment.getExternalStorageState().equals(

android.os.Environment.MEDIA_MOUNTED);

SDPATH = Environment.getExternalStorageDirectory().getPath();

FILESPATH = this.context.getFilesDir().getPath();

}

/**

* 在SD卡上创建文件

*

* @throws IOException

*/

public File createSDFile(String fileName) throws IOException {

File file = new File(SDPATH + "//" + fileName);

if (!file.exists()) {

file.createNewFile();

}

return file;

}

/**

* 删除SD卡上的文件

*

* @param fileName

*/

public boolean deleteSDFile(String fileName) {

File file = new File(SDPATH + "//" + fileName);

if (file == null || !file.exists() || file.isDirectory())

return false;

return file.delete();

}

/**

* 写入内容到SD卡中的txt文本中

* str为内容

*/

public void writeSDFile(String str,String fileName)

{

try {

FileWriter fw = new FileWriter(SDPATH + "//" + fileName);

File f = new File(SDPATH + "//" + fileName);

fw.write(str);

FileOutputStream os = new FileOutputStream(f);

DataOutputStream out = new DataOutputStream(os);

out.writeShort(2);

out.writeUTF("");

System.out.println(out);

fw.flush();

fw.close();

System.out.println(fw);

} catch (Exception e) {

}

}

/**

* 读取SD卡中文本文件

*

* @param fileName

* @return

*/

public String readSDFile(String fileName) {

StringBuffer sb = new StringBuffer();

File file = new File(SDPATH + "//" + fileName);

try {

FileInputStream fis = new FileInputStream(file);

int c;

while ((c = fis.read()) != -1) {

sb.append((char) c);

}

fis.close();

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

return sb.toString();

}

public String getFILESPATH() {

return FILESPATH;

}

public String getSDPATH() {

return SDPATH;

}

public boolean hasSD() {

return hasSD;

}

}

3、写一个用于检测读写功能的的布局

复制代码 代码如下:

main.xml

<?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" >

<TextView

android:id="@+id/hasSDTextView"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="hello" />

<TextView

android:id="@+id/SDPathTextView"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="hello" />

<TextView

android:id="@+id/FILESpathTextView"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="hello" />

<TextView

android:id="@+id/createFileTextView"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="false" />

<TextView

android:id="@+id/readFileTextView"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="false" />

<TextView

android:id="@+id/deleteFileTextView"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="false" />

</LinearLayout>

4、就是UI的类了

复制代码 代码如下:

FileOperateActivity.class

/**

* @Title: FileOperateActivity.java

* @Package com.tes.textsd

* @Description: TODO(用一句话描述该文件做什么)

* @author Alex.Z

* @date 2013-2-26 下午5:47:28

* @version V1.0

*/

package com.tes.textsd;

import java.io.IOException;

import android.app.Activity;

import android.os.Bundle;

import android.widget.TextView;

public class FileOperateActivity extends Activity {

private TextView hasSDTextView;

private TextView SDPathTextView;

private TextView FILESpathTextView;

private TextView createFileTextView;

private TextView readFileTextView;

private TextView deleteFileTextView;

private FileHelper helper;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

hasSDTextView = (TextView) findViewById(R.id.hasSDTextView);

SDPathTextView = (TextView) findViewById(R.id.SDPathTextView);

FILESpathTextView = (TextView) findViewById(R.id.FILESpathTextView);

createFileTextView = (TextView) findViewById(R.id.createFileTextView);

readFileTextView = (TextView) findViewById(R.id.readFileTextView);

deleteFileTextView = (TextView) findViewById(R.id.deleteFileTextView);

helper = new FileHelper(getApplicationContext());

hasSDTextView.setText("SD卡是否存在:" + helper.hasSD());

SDPathTextView.setText("SD卡路径:" + helper.getSDPATH());

FILESpathTextView.setText("包路径:" + helper.getFILESPATH());

try {

createFileTextView.setText("创建文件:"

+ helper.createSDFile("test.txt").getAbsolutePath());

} catch (IOException e) {

e.printStackTrace();

}

deleteFileTextView.setText("删除文件是否成功:"

+ helper.deleteSDFile("xx.txt"));

helper.writeSDFile("1213212", "test.txt");

readFileTextView.setText("读取文件:" + helper.readSDFile("test.txt"));

}

}

看看运行的效果:

时间: 2024-10-09 11:58:14

android 手机SD卡读写操作(以txt文本为例)实现步骤的相关文章

android 手机SD卡读写操作(以txt文本为例)实现步骤_Android

1.首先对manifest注册SD卡读写权限 要说明一下,我这里没有用MainActivity.class作为软件入口 复制代码 代码如下: AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com

Android获取SD卡上图片和视频的缩略图

  需要快速提取图片和视频缩略图可以直接访问 android.provider.MediaStore.Images.Thumbnails 和android.provider.MediaStore.Video.Thumbnails这两个数据库,即可查询出来缩略图 . 如何判断文件呢? 可以通过Cursor遍历数据库,对比INTERNAL_CONTENT_URI字段的值,这是一个Uri,这里保存着Android手机SD卡上的多媒体文件完整路径. Uri originalUri = MediaStor

Android获取SD卡上图片和视频缩略图的小例子_Android

      如何判断文件呢? 可以通过Cursor遍历数据库,对比INTERNAL_CONTENT_URI字段的值,这是一个Uri,这里保存着Android手机SD卡上的多媒体文件完整路径. [java] 复制代码 代码如下: Uri originalUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;                 //若为视频则为MediaStore.Video.Media.EXTERNAL_CONTENT_URI;    

Android获取SD卡上图片和视频缩略图的小例子

如何判断文件呢? 可以通过Cursor遍历数据库,对比INTERNAL_CONTENT_URI字段的值,这是一个Uri,这里保存着Android手机SD卡上的多媒体文件完整路径. [java]复制代码 代码如下:Uri originalUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;                 //若为视频则为MediaStore.Video.Media.EXTERNAL_CONTENT_URI;            

android webWiew加载一个远程网页播放视频,请问如何播放手机SD卡里的视频?

问题描述 android webWiew加载一个远程网页播放视频,请问如何播放手机SD卡里的视频? webWiew 加载一个网页,怎么让这个网页上面的video控件播放我SD卡上的视频 <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta name="viewport" content=""/> <meta http-equiv="Co

手机sd卡android/data和data/data中都找不到相应的软件包

问题描述 手机sd卡android/data和data/data中都找不到相应的软件包 应用开发时,我建了一个数据库存在手机软件中,结果在手机上运行时,去android/data和data/data中都没有找到相应的包名,求大神指导. Manifest中加了如下权限: <instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="cn.itetc

Android 检测SD卡状态

if (Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED)) { // sd card 可用 }else { // 当前不可用 } Environment.MEDIA_MOUNTED // sd卡在手机上正常使用状态  Environment.MEDIA_UNMOUNTED // 用户手工到手机设置中卸载sd卡之后的状态  Environment.MEDIA_REMOVED // 用户手动卸载,然后将s

Android 检测SD卡应用

Android 检测SD卡应用 //                                    Environment.MEDIA_MOUNTED // sd卡在手机上正常使用状态  // Environment.MEDIA_UNMOUNTED // 用户手工到手机设置中卸载sd卡之后的状态  // Environment.MEDIA_REMOVED // 用户手动卸载,然后将sd卡从手机取出之后的状态  // Environment.MEDIA_BAD_REMOVAL // 用户未

Android java SD卡存储问题

问题描述 Android java SD卡存储问题 本人想完成这样一个程序: 输入一个数据,保存时间和数据到SD卡,然后查询数据时能显示保存数据的时间和数据 怎么破?? 求大神解答 解决方案 可以用文件读写操作完成:在sd卡上建立自己的一个文件或者数据库,然后对改文件或数据库进行读写就可以了. 解决方案二: 你应该是刚刚接触Android可以先看看张泽华老师的视频,里面就有怎么样从SD卡里读写数据.感觉还不错 解决方案三: Android - 文件读写操作 总结 android 读写SD卡文件