Android开发基础,保存用户输入的用户名和密码

activity_main.xml布局文件(2017-11-9)




    
    
    
    
    


MainActivity.java文件

/*2017-11-9
 * 功能:保存用户输入的用户名和密码,读取sd*/
package com.day11_9;

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.io.OutputStream;

import android.os.Bundle;
import android.os.Environment;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.CheckBox;
import android.widget.EditText;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //在activitie创建时读取用户保存的密码
        EditText et_name=(EditText) findViewById(R.id.et_name);
    	EditText et_pwd=(EditText) findViewById(R.id.et_pwd);
    	//CheckBox cb=(CheckBox) findViewById(R.id.cb);
    	//获得用户保存的文件内容
    	//File file=new File(getCacheDir().getAbsolutePath()+"/info.txt");
    	if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
    		//创建文件对象
    		File file=new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/info.txt");
    		if(file.exists()){
        		//开始读取
        		String temp=readInner(file);
        		if(temp!=null&&!("".equals(temp))){
        			//进行字符串的分割
        			String []temps=temp.split("@@");
        			et_name.setText(temps[0]);
        			et_pwd.setText(temps[1]);
        		}
        	}
    	}
    	
    }
    /**
     * 
    
     * @param file
     * @return
     */
    public String reradInSD(File file){
    	String temp=null;
    	try {
    		//创建文件输入流
			FileInputStream fis=new FileInputStream(file);
			//将字节流转换为字符流
			BufferedReader br=new 
					BufferedReader(new InputStreamReader(fis));
			//读取一行
			temp=br.readLine();
    	} catch 
    	(Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
    	return temp;
    }
    /**
     * 从内存中读取用户保存的用户名和密码
     * @param file
     * @return
     */
    public String readInner(File file){
    	String temp=null;
    	try {
    		//创建文件输入流
			FileInputStream fis=new FileInputStream(file);
			//将字节流转换为字符流
			BufferedReader br=new 
					BufferedReader(new InputStreamReader(fis));
			//读取一行
			temp=br.readLine();
    	} catch 
    	(Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
    return temp;	
    }
    
    /**
     * 根据用户的选择将用户名和密码保存到info.txt文件中
     * @param v
     */
    public void click(View v){
    	EditText et_name=(EditText) findViewById(R.id.et_name);
    	EditText et_pwd=(EditText) findViewById(R.id.et_pwd);
    	CheckBox cb=(CheckBox) findViewById(R.id.cb);
    	String name=et_name.getText().toString();
    	String pwd=et_pwd.getText().toString();
    	//根据用户的选择进行判断,是否勾选
    	
    	if(cb.isChecked()){
    		
    		//调用写入内存的方法
    		//生成一个文件对象
    		//获得文件保存的路径,data/data/day119/files
    		//String path=getFilesDir().getAbsolutePath()+"/info.txt";
    		//获得文件保存的路径,data/data/day119/cache
    		String path=getCacheDir().getAbsolutePath()+"/info.txt";
    		System.out.println(path);
    		File file=new File(path);
    		//writeInInner(name+"@@"+pwd, file);
    		//调用写入sd的方法
    		writeInSD(name+"@@"+pwd);
    	}
    	
    }
    /**
     * 向内存中的文件进行写入
     * 
     * @param data
     */
  public void writeInInner(String data,File file){
	//if(file.exists()){
		  //判断文件是否存在
		  //1.获得输出流
		  try {
			FileOutputStream fos=new FileOutputStream(file);
			//将data写入文件
			fos.write(data.getBytes());
			//关闭流
			System.out.println("===========================");
			fos.close();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	 // }
	  
  }
  /**
   *  

   * @param data
   */
  public void writeInSD(String data){
	  //1.判断sdCard的状态
	  //获得SDCard的真实路径
	 String sdPath= Environment.getExternalStorageDirectory().
			 getAbsolutePath();
	 //再判断sd的状态,只有当sd的状态为MEDIA_MOUNTED才表示
	 //sd卡已经准备好
	if( Environment.getExternalStorageState().
			equals(Environment.MEDIA_MOUNTED)){
		//创建文件对象
		File file=new File(sdPath+"/info.txt");
		//获得输出流
		try {
			FileOutputStream fos=new FileOutputStream(file);
			fos.write(data.getBytes());
			fos.close();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
	  
  }  
}



你可能感兴趣的:(android,android开发,布局,密码)