java读取sd卡txt文件代码_android 手机SD卡读写操作(以txt文本为例)实现步骤

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

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

AndroidManifest.xml

package="com.tes.textsd"

android:versionCode="1"

android:versionName="1.0" >

android:minSdkVersion="8"

android:targetSdkVersion="16" />

android:allowBackup="true"

android:icon="@drawable/ic_launcher"

android:label="@string/app_name"

android:theme="@style/AppTheme" >

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

android:label="@string/app_name" >

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

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical" >

android:id="@+id/hasSDTextView"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="hello" />

android:id="@+id/SDPathTextView"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="hello" />

android:id="@+id/FILESpathTextView"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="hello" />

android:id="@+id/createFileTextView"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="false" />

android:id="@+id/readFileTextView"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="false" />

android:id="@+id/deleteFileTextView"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="false" />

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

}

}

看看运行的效果:

676c3194cf99ef64c10258555c15125a.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值