Android数据存储之IO

Android开发中免不了数据本地的存储,今天我们来说一说怎样利用IO流来进行数据存储。

这里我们通过模拟一个QQ登陆界面的小demo来实际操作IO流。

功能描写叙述:点击button能够保存用户输入的username和password,当点击记住password时。亦能在应用第二次打开时,回显username和password

1.这里布局文件的代码就不贴了,看效果图

Android数据存储之IO

2.MainActivity.java

package com.example.viewswitchtest;

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 java.util.ArrayList;
import java.util.List; import android.os.Bundle;
import android.os.Environment;
import android.app.Activity;
import android.graphics.drawable.Drawable;
import android.telephony.SmsManager;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast; public class MainActivity extends Activity { private EditText editAccount;
private EditText editPwd;
private Button btnLogin;
private CheckBox checkbox;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); // 账号edit
editAccount = (EditText) findViewById(R.id.edit_account);
// passwordedit
editPwd = (EditText) findViewById(R.id.edit_pwd);
// 登陆button
btnLogin = (Button) findViewById(R.id.btn_login);
// 记住账号和passwordcheckbox
checkbox = (CheckBox) findViewById(R.id.checkbox); // 回显账号和password
readAccountAndPwd(); btnLogin.setOnClickListener(new OnClickListener() { @Override
public void onClick(View arg0) { if (checkbox.isChecked()) { String account = editAccount.getText().toString();
String pwd = editPwd.getText().toString(); // android为了防止开发者手写路径easy出现错误,装门提供了两个API
// getFilesDir() --> 相应的路径:data/data/项目包名/files
// getCacheDir() --> 相应的路径:data/data/项目包名/cache
File file = new File(getFilesDir(), "info.txt"); try {
FileOutputStream fos = new FileOutputStream(file);
fos.write((account + "-" + pwd).getBytes()); // 保存格式为"account-password",方便切割
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
Toast.makeText(MainActivity.this, "login success", Toast.LENGTH_LONG).show();
}
});
} /**
* 回显username和password
*/
private void readAccountAndPwd() { File file = new File(getFilesDir(), "info.txt"); if (file.exists()) {
try {
FileInputStream fis = new FileInputStream(file);
BufferedReader reader = new BufferedReader(new InputStreamReader(fis));
String text = reader.readLine();
String[] infos = text.split("-"); // 回显信息
editAccount.setText(infos[0]);
editPwd.setText(infos[1]); fis.close();
reader.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}

3.输入账号和password,点击登陆button,我们能够在DDMS中的file explore中看到保存的txt格式文件:

Android数据存储之IO

4.导出文件,通过文本编辑器打开验证,账号password是否正确:

Android数据存储之IO

能够看到账号和password被正确的保存了。且格式正确。

5.关闭应用。再次打开

Android数据存储之IO

能够看到,数据能够被正确的回显到输入框中。:-D。。!

上一篇:Dijstra算法-------为了纪念,等以后看的时候方便


下一篇:使用npm私有服务器保存公司内部强业务类型组件(二):vue-webpack框架