android读取、写入文件

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

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

MainActivity.java是主Activity
源代码如下:

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();
				}
			}
        	
        });
    }
}

发表评论

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