向sd卡读写数据
/data/data 是本地存储
/storage/ 是外部存储
SD卡存储


<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
public void writeToSdCard() throws IOException {
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, permissions, REQUEST_CODE);
} else {
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
String name = et_of_name.getText().toString();
String content = et_of_content.getText().toString();
String dir = getExternalFilesDir(null).getAbsolutePath();
dir = dir + "/" + name;
FileOutputStream fos = new FileOutputStream(dir);
fos.write(content.getBytes("utf-8"));
fos.close();
Toast.makeText(this, "save to external sdcard", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "without external sdcard", Toast.LENGTH_SHORT).show();
}
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
switch (requestCode) {
case REQUEST_CODE:
if (grantResults.length>0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
try {
writeToSdCard();
} catch (IOException e) {
Toast.makeText(this, "failed save to external sdcard", Toast.LENGTH_SHORT).show();
}
} else {
Toast.makeText(this, "Write External SDCARD Permission Not Granted", Toast.LENGTH_SHORT).show();
}
break;
default:
break;
}
}
public void read(View v) throws IOException {
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
String name = et_of_name.getText().toString();
String dir = getExternalFilesDir(null).getAbsolutePath();
dir = dir + "/" + name + "txt";
InputStream fis = new FileInputStream(dir);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
int len = -1;
byte[] bytes = new byte[1024];
while ((len = fis.read(bytes)) != -1) {
bos.write(bytes);
}
String content = bos.toString();
et_of_content.setText(content);
} else {
Toast.makeText(this, "without external sdcard", Toast.LENGTH_SHORT).show();
}
}
判断文件夹是否存在
File file = new File(dir);if(!file.exists()) { file.mkdir();}
String dir =
context.getExternalFilesDir(null).getAbsolutePath();
/storage/emulated/0/Android/data/com.example.storage/files
Environment.getExternalStorageDirectory().getAbsolutePath()
/storage/emulated/0
向sd卡读写数据的更多相关文章
- Android中向SD卡读写数据,读SD卡和手机内存
package com.example.sdoperation; import java.io.BufferedReader; import java.io.File; import java.io. ...
- 第36章 SDIO—SD卡读写测试
第36章 SDIO—SD卡读写测试 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/f ...
- 第36章 SDIO—SD卡读写测试—零死角玩转STM32-F429系列
第36章 SDIO—SD卡读写测试 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/f ...
- SD卡读写之FileNotFoundException: /storage/emulated/0object.txt: open failed: ENOENT (No such file or dir
读写sd卡中的文件依照例如以下步骤:1调用Environment的getExternalStorageState()方法推断手机上是否插入了sd卡.而且应用程序具有读写SD卡的能力 //假设手机已经插 ...
- 【STM32】使用SDIO进行SD卡读写,包含文件管理FatFs(八)-认识内存管理
[STM32]使用SDIO进行SD卡读写,包含文件管理FatFs(一)-初步认识SD卡 [STM32]使用SDIO进行SD卡读写,包含文件管理FatFs(二)-了解SD总线,命令的相关介绍 [STM3 ...
- 【STM32】使用SDIO进行SD卡读写,包含文件管理FatFs(七)-准备移植FatFs
[STM32]使用SDIO进行SD卡读写,包含文件管理FatFs(一)-初步认识SD卡 [STM32]使用SDIO进行SD卡读写,包含文件管理FatFs(二)-了解SD总线,命令的相关介绍 [STM3 ...
- 【STM32】使用SDIO进行SD卡读写,包含文件管理FatFs(六)-FatFs使用的思路介绍
[STM32]使用SDIO进行SD卡读写,包含文件管理FatFs(一)-初步认识SD卡 [STM32]使用SDIO进行SD卡读写,包含文件管理FatFs(二)-了解SD总线,命令的相关介绍 [STM3 ...
- 【STM32】使用SDIO进行SD卡读写,包含文件管理FatFs(一)-初步认识SD卡
由于一张SD卡要能读写,涉及到的技术有些多,我打算分以下几篇博客 [STM32]使用SDIO进行SD卡读写,包含文件管理FatFs(一)-初步认识SD卡 [STM32]使用SDIO进行SD卡读写,包含 ...
- 【STM32】使用SDIO进行SD卡读写,包含文件管理FatFs(二)-了解SD总线,命令的相关介绍
其他链接 [STM32]使用SDIO进行SD卡读写,包含文件管理FatFs(一)-初步认识SD卡 [STM32]使用SDIO进行SD卡读写,包含文件管理FatFs(二)-了解SD总线,命令的相关介绍 ...
随机推荐
- hdu 5438(类似拓扑排序)
Ponds Time Limit: 1500/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Sub ...
- VS debug调试方法
F5 开始调试,执行到断点 Shift + F5 停止调试 F9 在光标所在行添加断点 Shift + F9 QuickWatch Shift Ctrl F9 delete all 断点 F10 单步 ...
- 安装sass的艰难过程
1.ruby安装 因为sass依赖于ruby环境,所以装sass之前先确认装了ruby.先导官网下载个ruby 在安装的时候,请勾选Add Ruby executables to your PATH这 ...
- AC日记——猴子 cogs 2043
2043. 猴子 ★★ 输入文件:monkeya.in 输出文件:monkeya.out 简单对比时间限制:1 s 内存限制:256 MB [题目描述] 有n只猴子,第一只尾巴挂在树上 ...
- js-压缩混淆工具 uglifyjs
单个打包文件npm install uglify-js -g 使用uglifyjs压缩js uglifyjs 原始js文件 -m -c -o 压缩后js文件 uglifyjs 原始js文件 -b -c ...
- react-hot-loader 的配置【局部刷新】--{create-react-app}
安装 1.安装create-react-app npm install -g create-react-app 2.创建项目 create-react-app my-app 配置 1.弹出配置文件 n ...
- T1155 金明的预算方案 codevs
累~~~ http://codevs.cn/problem/1155/ 题目描述 Description 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间.更让他高 ...
- 东方14模拟赛之noip2015/day1/3/神奇的幻方
总时间限制: 10000ms 单个测试点时间限制: 1000ms 内存限制: 128000kB 描述 幻方是一种很神奇的N*N 矩阵:它由数字 1,2,3, … …,N*N 构成,且每行.每列及 ...
- trick点
1.问题里有取模操作的时候,最后输出(ans+mod)%mod 2.涉及到输出实数0的时候要特判输出的会不是是-0.000000(因为0.00乘一个负的浮点数结果是-0.000000,乘一个正的浮点数 ...
- 从顺序随机I/O原理来讨论MYSQL MRR NLJ BNL BKA
http://blog.itpub.net/7728585/viewspace-2129502/