android程序中读写文件

来源:互联网 发布:怎样更换淘宝密码 编辑:程序博客网 时间:2024/06/07 11:29

模拟登录界面,具有保存密码的功能

*android中读写文件的路径是固定的,读写文件不需要获取权限,安卓自己机制管理
*全局变量的提取快捷键 ctrl+1
*全局变的初始化最好不要放在功能函数里面
*有保存文件的,读取的时候先判断是否存在,防止第一次登陆什么文件都不存在
*输入输出流的java基础,需要复习

package com.test.rwinram;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStreamReader;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.CheckBox;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends Activity {    //全局变量    private EditText et_name;    private EditText et_pass;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //全局变量的初始化,不要放在方法里面        et_name = (EditText) findViewById(R.id.et_name);        et_pass = (EditText) findViewById(R.id.et_pass);        readAccount();    }    public void readAccount() {        File file = new File("data/data/com.test.rwinrom/infor.txt");        //先判断文件存在不存在,如果第一次登陆不存在什么都不做        if (file.exists()) {            try {                FileInputStream fis = new FileInputStream(file);                // 把字节流转换成为字符流                BufferedReader br = new BufferedReader(new InputStreamReader(fis));                // 读取text文件中文件                String text = br.readLine();                String[] s = text.split("##");                et_name.setText(s[0]);                et_pass.setText(s[1]);            } catch (IOException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }        }    }    public void login(View v){        String name = et_name.getText().toString();        String pass = et_pass.getText().toString();        CheckBox cb = (CheckBox) findViewById(R.id.cb);        //判断选框是否被勾选        if(cb.isChecked()){            //data/data/com.test.rwinrom这就是内存存储空间的路径            File file = new File("data/data/com.test.rwinrom/infor.txt");            FileOutputStream fos;            try {                fos = new FileOutputStream(file);                fos.write((name+"##"+pass).getBytes());                fos.close();            } catch (Exception e) {                // TODO Auto-generated catch block                e.printStackTrace();            }        }        /*//System.out.println("恭喜你登录成功");        //创建吐司对话框        Toast t = Toast.makeText(this, "登录成功", Toast.LENGTH_SHORT);        //显示吐司对话框        t.show();*/        //创建并显示吐司对话框        Toast.makeText(this, "登录成功", Toast.LENGTH_SHORT).show();    }}

android提供了一个方法用于获取输出文件的路径

public void readAccount() {        //返回一个File对象,其路径是data/data/com.test.rwinrom/files        File file = new File(getFilesDir(),"info.txt");    //  File file = new File("data/data/com.test.rwinrom/infor.txt");//返回一个File对象,其路径是data/data/com.test.rwinrom/files        File file = new File(getFilesDir(),"info.txt");        //返回值也是一个file对象,其路径是data/data/com.test.rwinrom/cache    //  File file = new File(getCacheDir(),"info.txt");
0 0
原创粉丝点击