android程序中读写文件
2015-09-19 23:09
441 查看
模拟登录界面,具有保存密码的功能
*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");
相关文章推荐