注意:在内部存储空间读写文件不需要权限
getFilesDir()方法用于获取/data/data/<application package>/files目录
getCacheDir()方法用于获取/data/data/<application package>/cache目录
package com.itheima.rwinrom;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity {
private EditText et_name;
private EditText et_pass;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_name = (EditText) findViewById(R.id.et_name);
et_pass = (EditText) findViewById(R.id.et_pass);
readAccount();
}
private void readAccount() {
//读取文件,回显数据
// File file = new File("data/data/com.itheima.rwinrom/info.txt");
// File file = new File(getFilesDir(), "info.txt");
File file = new File(getCacheDir(), "info.txt");
if(file.exists()){
try {
FileInputStream fis = new FileInputStream(file);
//把字节流转换成字符流
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
//读取文件中的文本
String text = br.readLine();
String s[] = text.split("&&");
//给输入框设置文本
et_name.setText(s[0]);
et_pass.setText(s[1]);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public void login(View v){
//获取用户输入的账号密码
String name = et_name.getText().toString();
String pass = et_pass.getText().toString();
CheckBox cb = (CheckBox) findViewById(R.id.cb);
//判断选框是否选中
if(cb.isChecked()){
//确定文件名和路径
// File file = new File("data/data/com.itheima.rwinrom/info.txt");
//返回一个File对象,封装的路径是data/data/com.itheima.rwinrom/files
// File file = new File(getFilesDir(), "info.txt");
//返回一个File对象,封装的路径是data/data/com.itheima.rwinrom/cache
File file = new File(getCacheDir(), "info.txt");
try {
FileOutputStream fos = new FileOutputStream(file);
//把账号密码写入本地文件
fos.write((name + "&&" + pass).getBytes());
fos.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// System.out.println("登录成功");
//创建吐司对话框
Toast t = Toast.makeText(this, "登录成功", 0);
//显示对话框
t.show();
}
}