前面我们学习过了 往内部存储中写文件。
现在我们来读该文件,并且解析读取到的数据,显示到界面上。
/**
* 从内部存储读取用户数据
*/
public void readAccount(){
//要读取的文件
File f = new File("data/data/com.example.dev.readwritefile/info.txt");
try {
FileInputStream fis = new FileInputStream(f);
//把字节流转换成为字符串流
BufferedReader buffer = new BufferedReader(new InputStreamReader(fis));
//读取txt文件里的用户名和密码
String text = buffer.readLine();
String[] info = text.split(":");
//数据显示到界面上
EditText et_name = (EditText)findViewById(R.id.et_name);
EditText et_pwd = (EditText)findViewById(R.id.et_pwd);
et_name.setText(info[0]);
et_pwd.setText(info[1]);
}catch (Exception e){
e.printStackTrace();
}
}
优化代码:
/**
* 从内部存储读取用户数据
*/
public void readAccount(){
//要读取的文件
File f = new File("data/data/com.example.dev.readwritefile/info.txt");
if (f.exists()){ //判断文件是否存在
try {
FileInputStream fis = new FileInputStream(f);
//把字节流转换成为字符串流
BufferedReader buffer = new BufferedReader(new InputStreamReader(fis));
//读取txt文件里的用户名和密码
String text = buffer.readLine();
String[] info = text.split(":");
//数据显示到界面上
EditText et_name = (EditText)findViewById(R.id.et_name);
EditText et_pwd = (EditText)findViewById(R.id.et_pwd);
et_name.setText(info[0]);
et_pwd.setText(info[1]);
}catch (Exception e){
e.printStackTrace();
}
}
}