Android开发——openFileOutput和openFileIntput用法

  Context提供了如下两个方法来打开应用程序的数据文件夹里的文件IO流。

    FileInputStream openFileInput(String name):打开应用程序的数据文件夹下的那么文件对应的输入流。

    FileOutputStream openFileOutput(String name,int mode):打开应用程序的数据文件夹下的那么文件对应的输出流。

  我们上次介绍过文件的四种写入模式,我们重新写一遍。

文件的四种写入模式

  1.MODE_APPEND:追加形式
  2.MODE_PRIVATE:只能本应用程序访问
  3.MODE_WORLD_READABLE:其他程序进行读取
  4.MODE_WORLD_WRITEABLE:其他程序可以进行写入

效果图和上一篇博客的内部数据存储一样,就不多说。

布局文件也和上一篇一样,我们不废话。

MainActivity.java

package com.example.datasave2;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.PrintStream;

import com.example.datasave.Utils.ToastUtil;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;

public class MainActivity extends Activity {
	private final String FILE_NAME = "squid2.txt";// 文件名
	private EditText mEt_writeData, mEt_readData;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		mEt_writeData = (EditText) findViewById(R.id.main_et_writedata);
		mEt_readData = (EditText) findViewById(R.id.main_et_readdata);
	}

	// 写入按钮的监听
	public void write(View view) {
		// TODO Auto-generated method stub
		String content = mEt_writeData.getText().toString();
		try {
			FileOutputStream fos = openFileOutput(FILE_NAME, MODE_APPEND);
			fos.write(content.getBytes());
			fos.flush();
			fos.close();
			ToastUtil.showToast(this, "写入成功!");
			mEt_writeData.setText("");
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			ToastUtil.showToast(this, "写入失败!");
		}
	}

	// 读取按钮的监听
	public void read(View view) {
		try {
			FileInputStream fis = openFileInput(FILE_NAME);
			//InputStreamReader字节流转换成字符流
			BufferedReader br=new BufferedReader(new InputStreamReader(fis));
			String line=null;
			StringBuffer sb=new StringBuffer();
			while ((line=br.readLine())!=null) {
				sb.append(line);
			}
			mEt_readData.setText(sb.toString());
			ToastUtil.showToast(this, "读取成功");
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			ToastUtil.showToast(this, "读取失败");
		}
	}
}

补充toast

package com.example.datasave.Utils;

import android.content.Context;
import android.widget.Toast;

/**
 * @author Squid
 *
 */
public class ToastUtil {

	/**
	 * 显示的Toast内容
	 * @param context:上下文环境
	 * @param text:需要显示的内容
	 */
	public static void showToast(Context context,String text){
		Toast.makeText(context, text, Toast.LENGTH_SHORT).show();
	}
}


你可能感兴趣的:(Android)