android___文件访问权限

来源:互联网 发布:数据库分为哪几种 编辑:程序博客网 时间:2024/06/04 19:11

这里写图片描述

<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="com.example.login.MainActivity" >    <TextView        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:text="@string/user" />    <EditText        android:id="@+id/et_username"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:inputType="text" />    <TextView        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:text="@string/password" />    <EditText        android:id="@+id/et_password"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:inputType="textPassword" />        <RadioGroup        android:id="@+id/radioGroup"        android:layout_width="wrap_content"        android:layout_height="wrap_content"         android:orientation="horizontal"        >        <RadioButton            android:id="@+id/rd_private"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:checked="true"            android:text="私有" />        <RadioButton            android:id="@+id/rd_readable"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="可读" />        <RadioButton            android:id="@+id/rd_writeable"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="可写" />        <RadioButton            android:id="@+id/rd_rewrable"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="公开" />    </RadioGroup>    <RelativeLayout        android:layout_width="fill_parent"        android:layout_height="wrap_content" >        <CheckBox            android:id="@+id/cb_remember_pwd"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:checked="true"            android:text="@string/rempassword" />        <Button            android:id="@+id/bt_login"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_alignParentRight="true"            android:onClick="login"            android:text="@string/login" />    </RelativeLayout></LinearLayout>

MainActivity.java

package com.example.login;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.widget.CheckBox;import android.widget.EditText;import android.widget.RadioGroup;import android.widget.Toast;import com.example.login.service.LoginService;public class MainActivity extends Activity {    private static final String tag = "MainActivity";    private EditText et_username;    private EditText et_password;    private CheckBox cb;    private RadioGroup rg;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        et_username = (EditText) this.findViewById(R.id.et_username);        et_password = (EditText) this.findViewById(R.id.et_password);        cb = (CheckBox) this.findViewById(R.id.cb_remember_pwd);        rg = (RadioGroup) this.findViewById(R.id.radioGroup);    }    // 登陆控件    public void login(View view) {        String name = et_username.getText().toString().trim();        String pass = et_password.getText().toString().trim();        if (TextUtils.isEmpty(name) || TextUtils.isEmpty(pass)) {            Toast.makeText(this, "用户名或密码不能为空", Toast.LENGTH_SHORT).show();            return;        } else {            // 判断是否保存密码            if (cb.isChecked()) {                               // 保存用户和密码                Log.i(tag, "需要保存用户名和密码");                       boolean result = false;                //返回被选中的id                int id = rg.getCheckedRadioButtonId();                switch (id) {                case R.id.rd_private:                                       LoginService.saveUserInfo(this,name, pass,1);                       break;                case R.id.rd_readable:                    LoginService.saveUserInfo(this,name, pass,2);                       break;                case R.id.rd_writeable:                    LoginService.saveUserInfo(this,name, pass,3);                       break;                case R.id.rd_rewrable:                    LoginService.saveUserInfo(this,name, pass,4);                       break;                }                if(result){                    Toast.makeText(this, "用户名和密码保存成功", Toast.LENGTH_SHORT).show();                }            }            // 登陆 发送信息到服务器,服务喊叫验证是否正确            if ("zhangsan".equals(name) && "123".equals(pass)) {                Toast.makeText(this, "登陆成功", 0).show();            } else {                Toast.makeText(this, "用户名或密码错误", Toast.LENGTH_SHORT).show();            }        }    }}

LoginService.java

package com.example.login.service;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStreamReader;import java.util.HashMap;import java.util.Map;import android.annotation.SuppressLint;import android.content.Context;/* *  * 登录服务 *  * *  * **/@SuppressLint("WorldReadableFiles")public class LoginService {    /**     *  传入一个上下文:Context     *  保存用户名和密码的方法     *       *  return     *      true:成功     *      false:失败     *       *  mode:     *      1:私有     *      2:可读     *      3:可写     *      4:公开     *      * */    public static  boolean saveUserInfo(Context context ,String username,String password,int mode){            FileOutputStream fos  = null;        try{            /**             *  Context.MODE_PRIVATE:私有的方法创建文件             *              *               *              * */            switch (mode) {            case 1:                fos = context.openFileOutput("private.txt", Context.MODE_PRIVATE);                break;            case 2:                fos = context.openFileOutput("readable.txt", Context.MODE_WORLD_READABLE);                break;            case 3:                fos = context.openFileOutput("writeable.txt", Context.MODE_WORLD_WRITEABLE);                break;            case 4:                fos = context.openFileOutput("public.txt", Context.MODE_WORLD_READABLE+Context.MODE_WORLD_WRITEABLE);                break;                  }            //zhangsan###123            fos.write((username+"###"+password).getBytes());            fos.close();            return true;        }catch(Exception e){            return false;        }                   }}
0 0