1.在清单文件中添加权限:
<!-- 在SD卡中创建与删除文件权限 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<!-- 向SD卡写入数据权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
2.布局文件:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<EditText
android:id="@+id/editText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="写入文件的内容" />
<Button
android:id="@+id/read"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/editText"
android:text="读取文件" />
<Button
android:id="@+id/write"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/read"
android:text="写入文件" />
<TextView
android:id="@+id/show"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/write"
android:text="" />
</RelativeLayout>
3.源代码:
package com.dinglitouzi;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.io.RandomAccessFile;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.app.Activity;
public class MainActivity extends Activity implements OnClickListener{
private Button read_btn,write_btn;
private EditText editText;
private TextView show;
private String FILE_NAME="wang.txt";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
read_btn=(Button) findViewById(R.id.read);
write_btn=(Button) findViewById(R.id.write);
show=(TextView) findViewById(R.id.show);
editText=(EditText) findViewById(R.id.editText);
read_btn.setOnClickListener(this);
write_btn.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.read:
String str=read(FILE_NAME);
if (str!=null) {
show.setText(str);
}else{
show.setText("未读取到内容");
}
break;
case R.id.write:
String content=editText.getText().toString();
write(content, FILE_NAME);
break;
default:
break;
}
}
/**
* 写入方法
* @param content 写入的内容
* @param fileName 写入文件的文件名称
*/
private void write(String content,String fileName){
try {
//手机是否插入了SD卡
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
//获取SD卡的目录
File sdCardDir=Environment.getExternalStorageDirectory();
File file=new File(sdCardDir.getCanonicalPath()+"/"+fileName);
//创建RandomAccessFile对象
RandomAccessFile raf=new RandomAccessFile(file, "rw");
//将文件记录指针移动到最后
raf.seek(file.length());
//写入文件
raf.write(content.getBytes());
raf.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 读取文件
* @param fileName 文件名称
* @return 读取的字符串
*/
private String read(String fileName){
try {
//手机是否插入了SD卡
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
//获取SD卡的目录
File sdCardDir=Environment.getExternalStorageDirectory();
FileInputStream fis=new FileInputStream(sdCardDir.getCanonicalPath()+"/"+fileName);
BufferedReader bf=new BufferedReader(new InputStreamReader(fis));
StringBuffer sb=new StringBuffer("");
String line=null;
while ((line=bf.readLine())!=null) {
sb.append(line);
}
bf.close();
return sb.toString();
}
return null;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}