package cn.itcast.fileio;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity implements View.OnClickListener {
private EditText etName;
private EditText etAge;
private EditText etCont;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//获得各个R
etName = (EditText) findViewById(R.id.etName);
etAge = (EditText) findViewById(R.id.etAge);
etCont = (EditText) findViewById(R.id.etCont);
//之所以能够直接使用setOnClickListener(this);是应为上面实现了View.OnClickListener
findViewById(R.id.btnSave).setOnClickListener(this);
findViewById(R.id.btnRead).setOnClickListener(this);
}
public void onClick(View v) {
try {
String name = etName.getText().toString();
String age = etAge.getText().toString();
String cont = "name = " + name + ",age = " + age + "\r\n";
//取得控件的id
int id = v.getId();
//save
if (id == R.id.btnSave) {
//其中这里模式使用了一个地址/data/data/cn.itcast.fileio/fileio/itcast.txt
//下面定义的还有以追加方式写入,并且创建的文件是可写,可读的。Context.MODE_APPEND
//| Context.MODE_WORLD_READABLE
//| Context.MODE_WORLD_WRITEABLE); 注意这里一定要写上。
FileOutputStream fos = this.openFileOutput("itcast.txt",
Context.MODE_APPEND
| Context.MODE_WORLD_READABLE
| Context.MODE_WORLD_WRITEABLE);
fos.write(cont.getBytes());
fos.close();
Toast.makeText(this, "文件写入完成", 1).show();
}
//read 表示如果监听到的是btnRead的,则这个事件按照下面的方式写。
else if (id == R.id.btnRead) {
//将文件读入。
FileInputStream fis = this.openFileInput("itcast.txt");
//按照文件的大小写入。
byte[] bytes = new byte[fis.available()];
fis.read(bytes);
fis.close();
//表示在etCont这个文本框中写上上面写入的数据
etCont.setText(new String(bytes));
}
} catch (Exception e) {
e.printStackTrace();
}
}
}