当前位置 博文首页 > 程序员A的博客:简易QQ登录实现账号密码保存
package com.wyqhsj;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.Buffer;
import android.nfc.Tag;
import android.os.Bundle;
import android.app.Activity;
import android.text.TextUtils;
import android.util.Log;
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_qq; //qq。pwd,cb的id
private EditText et_pwd;//
private CheckBox cb;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_qq=(EditText) findViewById(R.id.et_qq);
et_pwd=(EditText) findViewById(R.id.et_pwd);
cb=(CheckBox) findViewById(R.id.cb);
readSaveData(); //完成数据回显
}
private void readSaveData() {
File file=new File("/data/data/com.wyqhsj/info.txt"); //new出来文件
if(file.exists()&&file.length()>0) //判断文件是否存在,有没有数据
{
try {
FileInputStream fis=new FileInputStream(file);
BufferedReader br=new BufferedReader(new InputStreamReader(fis));//读文件,需要reader对象
String info=br.readLine(); //读取第一行
String qq=info.split("###")[0]; //split拿到的是数组,第0个元素是qq,第一个密码,以###分隔
String pwd=info.split("###")[1];
et_qq.setText(qq); //设置qq和密码
et_pwd.setText(pwd);
fis.close(); //关闭流
} catch (IOException e) {
// 代码会有异常,需要try catch
e.printStackTrace();
}
}
}
public void login(View view)
{
String qq=et_qq.getText().toString().trim(); //获取qq,密码文本转换字符串,trim去除空格
String pwd=et_pwd.getText().toString().trim();
if (TextUtils.isEmpty(qq)||TextUtils.isEmpty(pwd)) //判断QQ,密码是否为空
{
Toast.makeText(this, "qq或者密码不能为空",0 ).show(); //弹出对话框
return;
}
//判断是否勾选记住密码
if (cb.isChecked())
{
try {
File file=new File("/data/data/com.wyqhsj/info.txt");//File file=new File("文件名");
FileOutputStream fos=new FileOutputStream(file); //new文件输出流
fos.write((qq+"###"+pwd).getBytes()); //写入###分隔,接受的是Bytes数组
fos.close(); //关闭输出流
Toast.makeText(this, "保存成功", 0).show();
} catch (IOException e) {
// 代码异常,try-catch
e.printStackTrace();
Toast.makeText(this, "保存失败", 0).show();
}
}
}
}