Android SD读写存储数据 JAVA 的方式 不推荐

  1. package com.escxh.android.meituan;

  2. import java.io.BufferedReader;

  3. import java.io.File;

  4. import java.io.FileInputStream;

  5. import java.io.FileNotFoundException;

  6. import java.io.FileOutputStream;

  7. import java.io.IOException;

  8. import java.io.InputStreamReader;

  9. import android.app.Activity;

  10. import android.content.Intent;

  11. import android.os.Bundle;

  12. import android.os.Environment;

  13. import android.view.View;

  14. import android.view.View.OnClickListener;

  15. import android.view.Window;

  16. import android.widget.Button;

  17. import android.widget.CheckBox;

  18. import android.widget.EditText;

  19. import android.widget.TextView;

  20. import android.widget.Toast;

  21. import com.escxh.android.R;

  22. import com.escxh.android.DIY.EmailAutoCompleteTextView;

  23. import com.escxh.android.utils.Logs;

  24. public class LoginActivity extends Activity implements OnClickListener {

  25. private TextView mTextView;

  26. //登录按钮

  27. private Button login;

  28. //用户名

  29. private EmailAutoCompleteTextView mLogin_user;

  30. //密码

  1. private EditText mLogin_pass;
  1. //跳转意图

  2. private Intent intent;

  3. //记住密码

  4. private CheckBox mIsRemember;

  5. @Override

  6. protected void onCreate(Bundle savedInstanceState) {

  7. super.onCreate(savedInstanceState);

  8. requestWindowFeature(Window.FEATURE_NO_TITLE);

  9. setContentView(R.layout.activity_login_layout);

  10. //初始化View

  11. initView();

  12. //获取用户名 密码

  13. getAccount();

  14. }

  15. private void getAccount(){

  16. //判断SD卡是否可用

  17. /*

  18. * SD 的状态

  19. * MEDIA_UNKNOWN:不能识别sd卡

  20. MEDIA_REMOVED:没有sd卡

  21. MEDIA_UNMOUNTED:sd卡存在但是没有挂载

  22. MEDIA_CHECKING:sd卡正在准备

  23. MEDIA_MOUNTED:sd卡已经挂载,可用

  24. * 写sd卡需要权限

  25. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

  26. * 读sd卡,在4.0之前不需要权限,4.0之后可以设置为需要

  27. <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

  28. * 使用api获得sd卡的真实路径,部分手机品牌会更改sd卡的路径

  29. Environment.getExternalStorageDirectory()

  30. */

  31. if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){

  32. File file = new File(Environment.getExternalStorageDirectory(),"info.txt");

  33. if(file.exists()){

  34. try {

  35. FileInputStream fis = new FileInputStream(file);

  36. //把字节流转换成字符流

  37. BufferedReader br = new BufferedReader(new InputStreamReader(fis));

  38. //读取txt文件里的用户名和密码

  39. String info = br.readLine();

  40. String[] infos =info.split("##");

  41. mLogin_user.setText(infos[0]);

  42. mLogin_pass.setText(infos[1]);

  43. } catch (FileNotFoundException e) {

  44. e.printStackTrace();

  45. } catch (IOException e) {

  46. e.printStackTrace();

  47. }

  48. }

  49. }

  50. }

  51. private void initView(){

  52. mTextView = (TextView) findViewById(R.id.login_back);

  53. login = (Button) findViewById(R.id.login_login);

  54. mIsRemember = (CheckBox) findViewById(R.id.login_isRemember);

  55. mLogin_user = (EmailAutoCompleteTextView) findViewById(R.id.login_user);

  56. mLogin_pass = (EditText) findViewById(R.id.login_pwd);

  57. login.setOnClickListener(this);

  58. mTextView.setOnClickListener(this);

  59. }

  60. @Override

  61. public void onClick(View v) {

  62. switch (v.getId()) {

  63. case R.id.login_login:

  64. //判断 记住密码 是否被选中

  65. if(mIsRemember.isChecked()){

  66. /*

  67. * 内部存储API

  68. * getFilesDir() 返回一个File 其路径是data/data/包名/files

  69. * getCacheDir() 返回 一个File 其路径是data/data/包名/cache

  70. */

  71. if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){

  72. String info = mLogin_user.getText().toString()+"##" +mLogin_pass.getText().toString();

  73. File file = new File(Environment.getExternalStorageDirectory(),"info.txt");

  74. FileOutputStream fos;

  75. try {

  76. fos = new FileOutputStream(file);

  77. fos.write(info.getBytes());

  78. fos.close();

  79. } catch (IOException e) {

  80. e.printStackTrace();

  81. }

  82. }else{

  83. setToast("sd卡不可用哟亲么么哒");

  84. }

  85. }

  86. setToast("登陆成功");

  87. intent = new Intent(LoginActivity.this, MeiTuanMainActivity.class);

  88. startActivity(intent);

  89. break;

  90. case R.id.login_back:

  91. intent = new Intent(LoginActivity.this, MeiTuanMainActivity.class);

  92. startActivity(intent);

  93. break;

  94. default:

  95. break;

  96. }

  97. }

  98. private void setToast(String str){

  99. Toast.makeText(this, str, 1000).show();

  100. }

  101. }

posted @ 2015-07-04 14:21  你若一直在  阅读(79)  评论(0)    收藏  举报