Android_rom存储,sp存储,sdcard存储

LoginActivity.java

 

package com.example.save_sp;

import java.util.Map;

import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.Toast;

import com.example.login.service.FileService;

public class LoginActivity extends Activity {

	public EditText edit_name, edit_pass;
	public Button btn_login;
	public CheckBox box_remeber;

	public FileService fileService;

	public RadioButton radio_rom, radio_sp, radio_sd;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_login);
		fileService = new FileService(this);

		edit_name = (EditText) findViewById(R.id.edit_name);
		edit_pass = (EditText) findViewById(R.id.edit_pass);
		btn_login = (Button) findViewById(R.id.btn_login);
		box_remeber = (CheckBox) findViewById(R.id.cbx_remember);

		btn_login.setOnClickListener(new MyOnClickListener());

		radio_rom = (RadioButton) findViewById(R.id.radio_rom);
		radio_sp = (RadioButton) findViewById(R.id.radio_sp);
		radio_sd = (RadioButton) findViewById(R.id.radio_sd);

		Map map = fileService.readFile("sdcard.txt");
		if (map != null) {
			edit_name.setText(map.get("name"));
			edit_pass.setText(map.get("pass"));
		}

		/*
		 * SharedPreferences
		 * preferences=this.getSharedPreferences("csdn",Context.MODE_PRIVATE);
		 * edit_name.setText(preferences.getString("name", "csdn"));
		 * edit_pass.setText(preferences.getString("pass", "csdn"));
		 */
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.login, menu);
		return true;
	}

	class MyOnClickListener implements View.OnClickListener {

		@Override
		public void onClick(View v) {
			int id = v.getId();
			switch (id) {
			case R.id.btn_login:
				String name = edit_name.getText().toString();
				String pass = edit_pass.getText().toString();
				if (TextUtils.isEmpty(name)) {
					Toast.makeText(LoginActivity.this, "用户名不能为空",
							Toast.LENGTH_SHORT).show();
					return;
				} else if (TextUtils.isEmpty(pass)) {
					Toast.makeText(LoginActivity.this, "密码不能为空",
							Toast.LENGTH_SHORT).show();
					return;
				} else {
					if (box_remeber.isChecked()) {
						if (radio_rom.isChecked()) {
							LoginActivity.this.fileService.saveToRom(name,
									pass, "private.txt");
							Toast.makeText(LoginActivity.this, "用户名和密码已保存",
									Toast.LENGTH_SHORT).show();
						} else if (radio_sp.isChecked()) {
							boolean flag = fileService.saveBysp(name, pass,
									"csdn");
							if (flag) {
								Toast.makeText(LoginActivity.this, "保存成功",
										Toast.LENGTH_SHORT).show();
							} else {
								Toast.makeText(LoginActivity.this, "保存失败",
										Toast.LENGTH_SHORT).show();
							}
						} else if (radio_sd.isChecked()) {
							boolean flag = fileService.saveToSDCard(name, pass,
									"sdcard.txt");
							if (flag) {
								Toast.makeText(LoginActivity.this, "保存成功",
										Toast.LENGTH_SHORT).show();
							} else {
								Toast.makeText(LoginActivity.this, "保存失败",
										Toast.LENGTH_SHORT).show();
							}
						}
					} else {
						Toast.makeText(LoginActivity.this, "用户名和密码不需要保存",
								Toast.LENGTH_SHORT).show();
					}
				}
				break;

			default:
				break;
			}
		}

	}
}


 

FileService.java

 

package com.example.login.service;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.HashMap;
import java.util.Map;

import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Environment;
import android.widget.Toast;

import com.example.login.utils.StreamTools;

public class FileService {

	public Context context;

	public FileService(Context context) {
		this.context = context;
	}
	
	public boolean saveToRom(String name,String pass,String fileName){
		try{
			FileOutputStream fos=context.openFileOutput(fileName, Context.MODE_PRIVATE);
			String result=name+":"+pass;
			fos.write(result.getBytes());
			fos.flush();
			fos.close();
		}catch(Exception e){
			e.printStackTrace();
			return false;
		}
		return true;
	}
	
	public Map readFile(String fileName){
		Map map=null;
		try{
			FileInputStream fis=context.openFileInput(fileName);
			String value=StreamTools.getValue(fis);
			String values[]=value.split(":");
			if(values.length>0){
				map=new HashMap();
				map.put("name", values[0]);
				map.put("pass", values[1]);
			}
			
		}catch(Exception e){
			e.printStackTrace();
		}
		return map;
	}
	
	public boolean saveBysp(String name,String pass,String fileName){
		SharedPreferences preferences=context.getSharedPreferences(fileName, Context.MODE_PRIVATE);
		Editor editor=preferences.edit();
		editor.putString("name", name);
		editor.putString("pass", pass);
		return editor.commit();
	}
	
	public boolean saveToSDCard(String name,String pass,String fileName){
		if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
			File sdCardDir=Environment.getExternalStorageDirectory();
			File file=new File(sdCardDir,fileName);
			try{
				FileOutputStream fos=new FileOutputStream(file);
				String result=name+":"+pass;
				fos.write(result.getBytes());
				fos.flush();fos.close();
			}catch (Exception e) {
				e.printStackTrace();
				return false;
			}
			
		}else{
			Toast.makeText(context, "SDCard没有找到!", Toast.LENGTH_LONG).show();
		}
		return true;
	}
	
	public Map readFileSDCard(String fileName){
		Map map=null;
		try{
			File sdCardDir=Environment.getExternalStorageDirectory();
			File file = new File(sdCardDir, fileName);
			FileInputStream fis=new FileInputStream(file);
			String value = StreamTools.getValue(fis);
			String values[]=value.split(":");
			if(values.length>0){
				map=new HashMap();
				map.put("name", values[0]);
				map.put("pass", values[1]);
			}
		}catch(Exception e){
			e.printStackTrace();
		}
		
		return map;
	}
	
}


StreamTools.java

package com.example.login.utils;

import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;

public class StreamTools {
	public static String getValue(FileInputStream fis) throws Exception{
		ByteArrayOutputStream stream=new ByteArrayOutputStream();
		byte[] buffer=new byte[1024];
		int length=-1;
		while((length=fis.read(buffer))!=-1){
			stream.write(buffer,0,length);
		}
		stream.flush();
		stream.close();
		String value=stream.toString();
		return value;
	}
}


login_activity.xml

 



    

        

            

            

                
            
        

        

            

            
        

        

            


 

String.xml

 




    save_sp
    Settings
    save_sp
	用户名:
    密 码:
    登陆
    记住密码
    rom存储
    sp存储
    sd存储


需要添加的权限:


你可能感兴趣的:(Android,开发)