8.读取外部存储文件

SD卡的路径:

  • 2.2之前,sd卡路径:sdcard
  • 4.3之前,sd卡路径:mnt/sdcard
  • 4.3开始,sd卡路径:storage/sdcard

Environment.getExternalStorageDirectory()获取存储卡的路径

有4种状态:

  • MEDIA_UNKNOWN:不能识别sd卡
  • MEDIA_REMOVED:没有sd卡
  • MEDIA_UNMOUNTED:SD卡存在但是没有挂载
  • MEDIA_CHECKING:sb卡正在准备

MEDIA_MOUNTED:sd卡已经挂载,可以用

使用之前最好判断一下sd卡是否挂载了,然后再去对sd卡进行读写

if(Environment.getExternalStorageDirectory().equals(Environment.MEDIA_MOUNTED))

示例代码

package com.ldw.rwinrom;

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;

import com.ldw.apirwoutrom.R;

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);
        read();
    }
    
    //读取文件
    public void read(){
    	//使用api读取路径
    	 //File file = new File("sdcard/12.txt");
    	 File file = new File(Environment.getExternalStorageDirectory(),"123.txt");
    	 if(file.exists()){
	    	 try {
	    		 
				FileInputStream fis = new FileInputStream(file);
				//把字节流转换成字符流
				BufferedReader br = new BufferedReader(new InputStreamReader(fis));
				//读取txt里面的数据,readLine可以读取一行数据
				String text = br.readLine();
				String[] s = text.split("==");
		    	
		    	et_name.setText(s[0]);
		    	et_pass.setText(s[1]);
		    	fis.close();
		    	br.close();
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
    	 
    	 }
    }

    //点击登陆写文件
    public void login(View v){
    	
    	CheckBox cb = (CheckBox) findViewById(R.id.cb);
    	String name = et_name.getText().toString();
    	String password = et_pass.getText().toString();
    	
    	if(cb.isChecked()){
    		//data/data/com.ldw.rwinrom:存储空间的路径
    		//File file = new File("sdcard/12.txt");
    		File file = new File(Environment.getExternalStorageDirectory(),"123.txt");
    		
    		try {
    			FileOutputStream fos = new FileOutputStream(file);
				fos.write((name + "==" + password).getBytes());
				fos.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
    	}
    	
    	Toast.makeText(this, "登陆成功", Toast.LENGTH_SHORT).show();
    	
    }
    
    
}

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值