前序:
Android五大存储:内部存储、外部存储、网络存储、SharedPreferences和SQLite
每天都有新的感悟,而能将感悟记录下来并分享,这成了我目前唯一能坚持的一件事情。这次小编想分享的是Android五大存储之内部存储,并将案例整理如下:
正文:
此次案例是:登陆存储账号密码,勾选单选框登陆,下次无需重新输入账号密码可直接登陆。
先看图:
用手机截图的,可以看时间,首先进入登陆界面,输入账号密码,选中记住账号密码的登陆,退出重新进入账号密码已经自动填充。
代码:
public class MainActivity extends AppCompatActivity {
privateEditTextet_user;//用户账号
privateEditTextet_password;//密码
privateCheckBoxcb;//记住账号密码
privateButtonbtn_login;//登陆
@Override
protected voidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();//初始化
readAccount();//读取账号密码
}
private voidreadAccount() {
File file =newFile("data/data/com.xuchen.logininroom/info.txt");
if(file.exists()){
try{
FileInputStream fileInputStream =newFileInputStream(file);
//将字节流转化为字符流
BufferedReader bufferedReader =newBufferedReader(newInputStreamReader(fileInputStream));
//读取text文件里的用户名跟密码
String readLine = bufferedReader.readLine();
String[] split = readLine.split("##");
et_user.setText(split[0]);
et_password.setText(split[1]);
}catch(IOException e) {
e.printStackTrace();
}
}
}
private voidinitView() {
et_user= (EditText) findViewById(R.id.et_user);
et_password= (EditText) findViewById(R.id.et_password);
cb= (CheckBox) findViewById(R.id.cb);
btn_login= (Button) findViewById(R.id.btn_login);
}
//登陆监听
public voidlogin(View view){
//字符串
String user =et_user.getText().toString();
String password =et_password.getText().toString();
//判断选框是否被选
if(cb.isChecked()){
//内部存储路径:data/data/com.xuchen.logininroom
File file =newFile("data/data/com.xuchen.logininroom/info.txt");
try{
FileOutputStream fileOutputStream =newFileOutputStream(file);
fileOutputStream.write((user+"##"+password).getBytes());
fileOutputStream.close();
}catch(IOException e) {
e.printStackTrace();
}
}
Toast.makeText(this,"登陆成功",Toast.LENGTH_SHORT).show();
}
布局:
反馈:
CSDN:http://write.blog.csdn.net/postlist
github: https://github.com/ITtrap
QQ: 2632545852
Email: xuchen1009@gmail.com