5 保存文件到手机内存

<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:orientation="vertical"
    tools:context=".MainActivity" >


    <EditText
        android:id="@+id/et_number"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:inputType="number"
        android:hint="请输入QQ号码" />


    <EditText
        android:id="@+id/et_password"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:inputType="textPassword" // 密文
        android:hint="请输入QQ密码" />


    <CheckBox                                                               // 勾选框
        android:id="@+id/cb_remerber_password"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:checked="true"                               // 先默认构选
        android:text="记住密码" />


    <Button
        android:id="@+id/btn_login"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:paddingLeft="40dip"
        android:paddingRight="40dp"
        android:text="登录" />


</LinearLayout>





package com.itheima27.qqlogin;



import java.util.Map;


import android.app.Activity;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;


import com.itheima27.qqlogin.utils.UtilsOfSharedPreference;


public class MainActivity extends Activity implements OnClickListener {


private static final String TAG = "MainActivity";
private EditText etNumber; // 号码的输入框控件
private EditText etPassword;// 密码的输入框控件
private CheckBox cbRemerberPWD;// 记住密码


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

//this.getFilesDir(); // /data/data/com.itheima27.qqlogin1/files/itheima27.txt
//this.getCacheDir(); // /data/data/包名/cache/


init();

// 读取信息
/*String text = UtilsOfSharedPreference.getUserInfo(this);
if(!TextUtils.isEmpty(text)) {

// 123##abc
String[] strArray = text.split("##");
etNumber.setText(strArray[0]);
etPassword.setText(strArray[1]);
}*/


Map<String, String> userInfo = UtilsOfSharedPreference.getUserInfo(this);
if(userInfo != null) {
etNumber.setText(userInfo.get("number"));
etPassword.setText(userInfo.get("password"));
}
}

private void init() {
etNumber = (EditText) findViewById(R.id.et_number);
etPassword = (EditText) findViewById(R.id.et_password);
cbRemerberPWD = (CheckBox) findViewById(R.id.cb_remerber_password);

findViewById(R.id.btn_login).setOnClickListener(this);
}


public void onClick(View v) {
// 取出号码和密码
String number = etNumber.getText().toString();
String password = etPassword.getText().toString();

// 校验帐号和密码
if(! TextUtils.isEmpty(number) && !TextUtils.isEmpty(password)) { // 号码和密码不为空
// 如果登录成功, 判断是否记住密码
Toast.makeText(this, "登录成功", 0).show();

if(cbRemerberPWD .isChecked()) { // 需要记住密码
Log.i(TAG, "记住帐号和密码: " + number + " = " + password);    

// 存储帐号和密码
if( UtilsOfSharedPreference.saveUserInfo(this, number, password)) {
Toast.makeText(this, "保存成功", 0).show();
} else {
Toast.makeText(this, "保存失败", 0).show();
}
}

} else {
Toast.makeText(this, "请正确输入", 0).show();
}

}


}


、********************************************************************************

utils.java

//this.getFilesDir(); // /data/data/com.itheima27.qqlogin1/files/itheima27.txt

package com.itheima27.qqlogin.utils;


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 android.content.Context;


public class Utils1 {


/**
* 保存用户信息
* @param number
* @param password
*/
public static boolean saveUserInfo(Context context, String number, String password) {
try {

// /data/data/包名/files/itheima27.txt
File file = new File(context.getFilesDir(), "itheima27.txt");

FileOutputStream fos = new FileOutputStream(file);

String text = number + "##" + password; // 123##abc  ##    为了后面分割账号和密码

fos.write(text.getBytes()); // 写入

fos.flush();
fos.close();
return true;
} catch (Exception e) {
e.printStackTrace();
}
return false;
}

/**
* 获取用户信息
* @return
*/
public static String getUserInfo(Context context) {
try {

File file = new File(context.getFilesDir(), "itheima27.txt");

// 字节流
FileInputStream fis = new FileInputStream(file);

// 转换流
InputStreamReader isr = new InputStreamReader(fis);

// 字符流
BufferedReader br = new BufferedReader(isr);

String result = br.readLine();

br.close();
isr.close();
fis.close();
return result;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}



//this.getCacheDir(); // /data/data/包名/cache/



路径相关:
// 存放一些应用程序配置的信息.
this.getFilesDir(); // /data/data/当前应用程序的包名/files


// 存放应用程序缓存文件(不能影响应用程序运行的数据.)
this.getCacheDir(); // /data/data/包名/cache/




存储卡的路径:
Environment.getExternalStorageDirectory(); /mnt/sdcard/




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值