黑马Android:在外部存储中读写文件

来源:互联网 发布:linux udp网络编程 编辑:程序博客网 时间:2024/04/27 21:45
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.os.Environment;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(){        if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){            File file = new File("sdcard/info.txt");            FileInputStream fis = null;            if(file.exists()){                try {                    fis = new FileInputStream(file);                    //把字节流转换成字符流                    BufferedReader br = new BufferedReader(new InputStreamReader(fis));                    //读取txt文件里的用户名和密码                    String text = br.readLine();                    String[] s = text.split("##");                    et_name.setText(s[0]);                    et_pass.setText(s[1]);                } catch (Exception e) {                    // TODO Auto-generated catch block                    e.printStackTrace();                }finally{                    if(fis!=null){                        try {                            fis.close();                        } 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()){            //MEDIA_UNKNOWN:不能识别sd卡            //MEDIA_REMOVED:没有sd卡            //MEDIA_UNMOUNTED:sd卡存在但是没有挂载            //MEDIA_CHECKING:sd卡正在准备            //MEDIA_MOUNTED:sd卡已经挂载,可用            if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){                //返回一个File对象,其路径是sd卡的真实路径                 File file = new File(Environment.getExternalStorageDirectory(), "info.txt");            //  File file = new File("sdcard/info.txt");                FileOutputStream fos = null;                try {                    fos = new FileOutputStream(file);                    fos.write((name + "##" + pass).getBytes());                } catch (Exception e) {                    // TODO Auto-generated catch block                    e.printStackTrace();                }finally{                    if(fos!=null){                        try {                            fos.close();                        } catch (IOException e) {                            // TODO Auto-generated catch block                            e.printStackTrace();                        }                    }                }            }else{                Toast.makeText(this, "sd卡不可用哟亲么么哒", 0).show();            }        }        //创建并显示吐司对话框        Toast.makeText(this, "登录成功", 0).show();    }}
<!--添加权限--><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!--布局文件--><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"    tools:context="indi.cc_rwinrom.MainActivity"     android:orientation="vertical"    >   <EditText        android:id="@+id/et_name"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:hint="请输入用户名"        />    <EditText        android:id="@+id/et_pass"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:inputType="textPassword"        android:hint="请输入密码"        />    <RelativeLayout         android:layout_width="match_parent"        android:layout_height="wrap_content"        android:orientation="horizontal"        >        <CheckBox             android:id="@+id/cb"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="记住用户名和密码"            android:layout_centerVertical="true"            />        <Button             android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_gravity="right"            android:text="登录"            android:layout_alignParentRight="true"            android:onClick="login"            />    </RelativeLayout></LinearLayout>
0 0