在内部文件的读取
**内部存储(internal storeage)
ram:运行时期的内存 (相当于电脑的内存)
rom;存储的内存 (相当于电脑的硬盘)
**外部存储(external storeage)
SD卡:相当于电脑的移动硬盘
* 2.2之前,sd卡路径:sdcard
* 4.3之前,sd卡路径:mnt/sdcard
* 4.3开始,sd卡路径:storage/sdcard
* 所有存储设备,都会被划分成若干个区块,每个区块有固定的大小
* 存储设备的总大小 = 区块大小 * 区块数量
一般的术语:手机自带的32G,指的是手机的外部存储空间
public void readAccount(){// File file = new File(getFilesDir(), "info.txt"); File file = new File(getCacheDir(), "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()){ //返回一个File对象,其路径是data/data/com.itheima.apirwinrom/files// File file = new File(getFilesDir(), "info.txt"); //返回值也是一个File对象,其路径是data/data/com.itheima.apirwinrom/cache File file = new File(getCacheDir(), "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(); } } //创建并显示吐司对话框 Toast.makeText(this, "登录成功", 0).show(); }
注意:
当内存不足时,系统可能帮我们删除cache中的文件,
所以一般重要的文件不要放在此文件夹中。
还有缓存中一般是存放一些内存中一些直接读取的数据。
手机上有个clear Data:删除的是"该file文件夹"中
clear cache:删除的是cache缓存中的文件。
对sdcard进行读取;
基本的状态:
MEDIA_UNKNOW:不能够进行识别该sd卡
MEDIA_REMOVE:没有该sd卡
MEDIA_UNMOUNTED:sd卡有但是并没有进行挂载
MEDIA_CHECKING:sd卡正在准备
MEDIA_MOUNTED:sd卡正在挂载
SharedPreference
生成XML文件备份短信