这是一个简单的将文本框里的内容写入指定文件的程序,同时还能读去指定文件名里面的内容
FileService.java实现了读取和写入方法
程序界面截图如下
android读取写入文件
里面的源码是:
[code lang="java"]
package com.daozhao.android;

import java.io.ByteArrayOutputStream;
import java.io.FileOutputStream;
import java.io.FileInputStream;

import android.content.Context;

public class FileService {
private Context context;

public FileService(Context context) {
this.context = context;
}

/**
* 一私有文件保存内容
* @param filename 文件名称
* @param content 文件内容
* @throws Exception
*/
public void save(String filename, String content) throws Exception {
FileOutputStream fos = context.openFileOutput(filename, Context.MODE_PRIVATE);
fos.write(content.getBytes());
fos.close();
}

/**
* 一读取文件内容
* @param filename 文件名称
* @param content 文件内容
* @throws Exception
*/
public String readFile(String filename) throws Exception {
FileInputStream fis = context.openFileInput(filename);
byte[] buffer = new byte[1024];
int len = 0;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
while((len = fis.read(buffer)) != -1) {
baos.write(buffer, 0, len);
}
byte[] data = baos.toByteArray(); //得到文件的二进制数据
baos.close();
fis.close();
return new String(data);
}
}

[/code]

MainActivity.java是主Activity
源代码如下:
[code lang="java"]
package com.daozhao.android;

import android.app.Activity;
import android.os.Bundle;
import android.widget.*;
import android.util.Log;
import android.view.*;

public class MainActivity extends Activity {
private static final String TAG = "MainActivity";
private FileService fs;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

fs = new FileService(this);

Button button = (Button) this.findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
EditText fileName = (EditText) findViewById(R.id.filename);
EditText fileContent = (EditText) findViewById(R.id.filecontent);
String filename = fileName.getText().toString();
String filecontent = fileContent.getText().toString();
try {
fs.save(filename,filecontent);
//输出操作成功的信息
Toast.makeText(MainActivity.this, R.string.success, 1).show();
} catch(Exception e) {
Log.e(TAG, e.toString());
Toast.makeText(MainActivity.this, R.string.error, 1).show();
}
}

});

Button read = (Button) this.findViewById(R.id.read);
read.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
EditText fileName = (EditText) findViewById(R.id.filename);
EditText fileContent = (EditText) findViewById(R.id.filecontent);
String filename = fileName.getText().toString();
String str = null;
String filecontent = fileContent.getText().toString();
try {
str = fs.readFile(filename);
fileContent.setText(str);
} catch(Exception e) {
Log.e(TAG, e.toString());
fileContent.setText("");
Toast.makeText(MainActivity.this, R.string.error, 1).show();
}
}

});
}
}
[/code]

分类: Android

发表评论

电子邮件地址不会被公开。 必填项已用*标注