照样以登录案例举例:

  第一步:界面绘制:跟之前写过的一个案例一样

  第二步:逻辑代码

 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");//文件流,定义文件的路径
            if(file.exists()){
                try {
                    FileInputStream 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();
                }
            }
        }
    }

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;
                try {
                    fos = new FileOutputStream(file);
                    fos.write((name + "##" + pass).getBytes());
                    fos.close();
                } catch (Exception e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            else{
                Toast.makeText(this, "sd卡不可用哟亲么么哒", 0).show();
            }
        }
        
        //创建并显示吐司对话框
        Toast.makeText(this, "登录成功", 0).show();
    }
    
}

第三步:总结

* sdcard:2.3之前的sd卡路径
* mnt/sdcard:4.3之前的sd卡路径
* storage/sdcard:4.3之后的sd卡路径

* 最简单的打开sd卡的方式
        File file = new File("sdcard/info.txt");

* 写sd卡需要权限
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

* 读sd卡,在4.0之前不需要权限,4.0之后可以设置为需要
        <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

* 使用api获得sd卡的真实路径,部分手机品牌会更改sd卡的路径
        Environment.getExternalStorageDirectory()

* 判断sd卡是否准备就绪
        if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED))

Android first---放置在外存中的文件读取的更多相关文章

  1. Android 怎样在linux kernel 中读写文件

    前言          欢迎大家我分享和推荐好用的代码段~~ 声明          欢迎转载,但请保留文章原始出处:          CSDN:http://www.csdn.net        ...

  2. java中的文件读取和文件写出:如何从一个文件中获取内容以及如何向一个文件中写入内容

    import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.Fi ...

  3. SpringMVC中properties文件读取

    SpringMVC给我们提供了用于properties文件读取的类: org.springframework.context.support.ResourceBundleMessageSource 1 ...

  4. android 打开 res raw目录 中 数据库文件

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha 安卓不能直接打开 res raw 中的 数据库 文件. 通过 资源 获取资源 方法 , ...

  5. PowerShell中进行文件读取,信息排序,分类计数。

    这是国外某大学QA的一道作业题,读取mainlog文件中的每一行信息,并获取有效的信息,也就是每条信息中第四个@后面的内容,然后进行分类与计数,要求是用Perl写,但我是用PowerShell完成的, ...

  6. cocos2d-x 中 xml 文件读取

    实现类 CXmlParse 啥也不说了  直接上硬货  believe yourself   一看就明白 CXmlParse.h #ifndef __C_XML_PARSE__ #define __C ...

  7. 解决SpringBoot jar包中的文件读取问题

    前言 SpringBoot微服务已成为业界主流,从开发到部署都非常省时省力,但是最近小明开发时遇到一个问题:在代码中读取资源文件(比如word文档.导出模版等),本地开发时可以正常读取 ,但是,当我们 ...

  8. JAVA 中的文件读取

    1. InputStream / OutputStream处理字节流抽象类:所有输入.输出(内存)类的超类,一般使用 FileInputStream / FileOutputStream 输出字符 u ...

  9. python中的文件读取

    ---恢复内容开始--- r模式,只读模式,不可写入,文件不存在会报错 #r模式,能读不能写,文件不存在会报错 f = open('a1.txt')#不写'r',默认只读 result = f.rea ...

随机推荐

  1. 真机调试---打包6plus出现问题

    问题: dyld: Library not loaded: @rpath/libswiftCore.dylib Referenced from: /private/var/mobile/Contain ...

  2. LDA 初见(JGibbLDA-v.1.0 eclipse使用)

    参考:Eclipse下使用JGibbLDA使用总结 一.下载和初次使用JGibbLDA 1.导入JGibbLDA-v.1.0项目(参考上面链接) 2.在LDA.java右键“run”--->“r ...

  3. IOS网络第一天-01基本的HTTP请求

    *************************** #import "HMViewController.h" #import "MBProgressHUD+MJ.h& ...

  4. Otsu algorithm

    一.介绍 OTSU算法也称最大类间差法,有时也称之为大津算法,被认为是图像分割中阈值选取的最佳算法,计算简单,不受图像亮度和对比度的影响,因此在数字图像处理上得到了广泛的应用.它是按图像的灰度特性,将 ...

  5. MipMap与三线性过滤

    现代计算机图形管线渲染图像的方法是处理这两个问题: 1 3D世界的几何图元如何投影成2D图元,进而对应到屏幕的哪些像素 2 根据已有的信息(光照,法向量,贴图),每个像素点应该怎样设置颜色 根据这两个 ...

  6. JBoss和Tomcat版本、及Servlet、JSP规范版本对应一览 【转】

    原文地址:http://blog.csdn.net/hills/article/details/40896357 JBoss和Tomcat版本.及Servlet.JSP规范版本对应一览 JBossAS ...

  7. <构建之法> 第四章 结对 读后感

    粗读 第四章主要讲的是关于结对合作的事项.大多数的软件开发都是团体性的,而合作的最小单位也就是两个人,这也是软件开发中的最佳实践.而结对中,我们能够更好的编写我们的代码,能够少一些担心,对自己的代码也 ...

  8. 关联分析---Apriori

    关联分析是一种在大规模数据集中寻找有趣关系的任务,这些关系有两种形式:频繁项集和关联规则.频繁项集是经常出现在一起的物品的集合,关联规则暗示两种物品之间可能存在的很强的关系. 如何寻找数据集中的频繁或 ...

  9. Android自动化测试工具——monkey简介及入门

    记得第二家单位的安卓开发在上线前都用monkey压几个小时,确实也能发现些问题,崩溃率低了些,没测过的确实可以压一压 搜了下资料,monkey确实很简单,发现问题自己搜下是什么问题,别一发现什么就跑去 ...

  10. CSS典型案例实践

    CSS案例实践 一.层布局:定位元素重叠 在CSS中可以通过z-index属性来确定定位元素的层叠等级.需要注意的是: z-index属性只有在元素的position属性取值为relative.abs ...