Androidx学习笔记(12)-- 文件读写操作-在外部存储空间中读写文件
来源:互联网 发布:linux格式化sd卡命令 编辑:程序博客网 时间:2024/05/07 18:26
在外部存储读写数据
sd卡的路径
SD卡:相当于电脑的移动硬盘
- 2.2之前,sd卡路径:sdcard
- 4.3之前,sd卡路径:mnt/sdcard
- 4.3开始,sd卡路径:storage/sdcard
所有存储设备,都会被划分成若干个区块,每个区块有固定的大小
- 存储设备的总大小 = 区块大小 * 区块数量
最简单的打开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卡是否准备就绪
Environment.getExternalStorageState()
//MEDIA_UNKNOWN:不能识别sd卡//MEDIA_REMOVED:没有sd卡
//MEDIA_UNMOUNTED:sd卡存在但是没有挂载
//MEDIA_CHECKING:sd卡正在准备
//MEDIA_MOUNTED:sd卡已经挂载,可用
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED))
在外部存储空间中读写文件
import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.InputStreamReader;import org.apache.http.entity.InputStreamEntity;import com.exp.rwinsd.R;import android.os.Bundle;import android.os.Environment;import android.annotation.SuppressLint;import android.app.Activity;import android.view.Menu;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"); 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 blocke.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 blocke.printStackTrace();} } else{ Toast.makeText(this, "sd卡不可用哟亲么么哒", 0).show(); } } //创建并显示吐司对话框 Toast.makeText(this, "登录成功", 0).show(); } }
0 0
- Androidx学习笔记(12)-- 文件读写操作-在外部存储空间中读写文件
- Androidx学习笔记(11)-- 文件读写操作-在内部存储空间中读写文件
- Androidx学习笔记(10)-- 文件读写操作简介
- Android学习(14) -- 在内部存储空间中读写文件
- Android 存储学习之在外部存储中读写文件
- 在外部存储中读写文件
- 内部存储空间读写文件
- 文件读写操作笔记
- 文件读写学习笔记
- 文件读写学习笔记
- 学习笔记---文件读写
- Android_02_在内部或外部存储中读写文件的操作
- Java学习笔记(三)——文件读写操作
- 黑马Android:在外部存储中读写文件
- 外部存储读写文件
- 文件读写操作笔记(2)
- [perl学习笔记]文件操作之文件的读写
- 《python》学习笔记(Day1+)python中读写文件
- node.js 版本升级
- PHPweb实现301重定向
- 17-Ajax使用get/post方式,判断用户名是否重复
- 设计模式
- c印记(一):面向对象
- Androidx学习笔记(12)-- 文件读写操作-在外部存储空间中读写文件
- Kmemleak Introduction
- {dede:php}标签不管用怎么办 {dede:php} 使用方法
- Hyper-V 网络安装 CentOS
- NYOJ 105 九的余数【同余定理】
- Android 数据库操作
- android studio生成aar包并在其他工程引用aar包
- Unity 往复运动的一种计算方法
- iOS多线程之GCD