您的位置:首页 > 移动开发 > Android开发

Android文件的读写详解

2016-05-04 11:40 246 查看

文件读写操作

Ram内存:运行内存,相当于电脑的内存

Rom内存:内部存储空间,相当于电脑的硬盘

sd卡:外部存储空间,相当于电脑的移动硬盘

在内部存储空间中读写文件

小案例:用户输入账号密码,勾选“记住账号密码”,点击登录按钮,登录的同时持久化保存账号和密码

1. 定义布局

2. 完成按钮的点击事件

弹土司提示用户登录成功

Toast.makeText(this, "登录成功", Toast.LENGTH_SHORT).show();


3. 拿到用户输入的数据

判断用户是否勾选保存账号密码

CheckBox cb = (CheckBox) findViewById(R.id.cb);
if(cb.isChecked()){

}


4. 开启io流把文件写入内部存储

直接开启文件输出流写数据

//持久化保存数据
File file = new File("data/data/com.itheima.rwinrom/info.txt");
FileOutputStream fos = new FileOutputStream(file);
fos.write((name + "##" + pass).getBytes());
fos.close();


读取数据前先检测文件是否存在

if(file.exists())


读取保存的数据,也是直接开文件输入流读取

File file = new File("data/data/com.itheima.rwinrom/info.txt");
FileInputStream fis = new FileInputStream(file);
//把字节流转换成字符流
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
String text = br.readLine();
String[] s = text.split("##");


读取到数据之后,回显至输入框

et_name.setText(s[0]);
et_pass.setText(s[1]);


应用只能在自己的包名目录下创建文件,不能到别人家去创建

使用路径api读写文件

getFilesDir()得到的file对象的路径是data/data/com.itheima.rwinrom2/files

存放在这个路径下的文件,只要你不删,它就一直在

getCacheDir()得到的file对象的路径是data/data/com.itheima.rwinrom2/cache

存放在这个路径下的文件,当内存不足时,有可能被删除

系统管理应用界面的清除缓存,会清除cache文件夹下的东西,清除数据,会清除整个包名目录下的东西

在外部存储读写数据

sd卡的路径

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 内存 存储