android 手机SD卡读写操作(以txt文本为例)实现步骤_安卓软件开发教程-查字典教程网
android 手机SD卡读写操作(以txt文本为例)实现步骤
android 手机SD卡读写操作(以txt文本为例)实现步骤
发布时间:2017-01-07 来源:查字典编辑
摘要:1、首先对manifest注册SD卡读写权限要说明一下,我这里没有用MainActivity.class作为软件入口复制代码代码如下:And...

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"));

}

}

看看运行的效果:

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新安卓软件开发学习
    热门安卓软件开发学习
    编程开发子分类