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

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

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity"
    android:orientation="vertical"
     >


    <EditText 
        android:id="@+id/et_name"
		android:layout_width="match_parent"
		android:layout_height="wrap_content"
		android:hint="请输入用户名"        
        />
    
    <EditText 
        android:id="@+id/et_pwd"
		android:layout_width="match_parent"
		android:layout_height="wrap_content"
		android:hint="请输入密码"	        
        />
    <CheckBox 
        android:id="@+id/cb"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="保存用户名和密码"
        
        />
    <Button 
        android:id="@+id/bt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="登录"
        android:onClick="click"
        />
   
</LinearLayout>


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]);
        		}
        	}
    	}
    	
    }
    /**
     * <uses-permission 
     * android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    
     * @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();
		}
	 // }
	  
  }
  /**
   *  <uses-permission android:
   *  name="android.permission.WRITE_EXTERNAL_STORAGE"/>

   * @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();
		}
		
	}
	  
  }  
}



  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值