SD卡相关操作

1、获取 App 文件目录

//获取 当前APP 文件路径
String path1 = this.getFilesDir().getPath();

当前APP目录也就是应用的这个目录 /data/data/com.tiger.helloworld/files

2、获取外部存储器 路径

一般手机文件管理 根路径 /storage/emulated/0/

//获取外部存储器 路径
String path2= Environment.getExternalStorageDirectory().getPath();

3、判断SD卡是否可用

if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState()))

4、获取SD总大小,可用空间

// 获取SD卡的总大小,可用空间
File file= Environment.getExternalStorageDirectory();
long totalSpace= file.getTotalSpace(); //总大小
long usableSpace= file.getUsableSpace(); //可用空间
//转换数据格式
String formatTotalSpace= Formatter.formatFileSize(MainActivity.this,totalSpace);
String formatUsableSpace=Formatter.formatFileSize(MainActivity.this,usableSpace); Toast.makeText(MainActivity.this, "Total Space:"+formatTotalSpace
+" UsableSpace:"+formatUsableSpace, Toast.LENGTH_LONG).show();

5.文本文件读写

Type1:

1、写入数据

     try {
String result = userName + "_" + userPwd;
//【1】创建一个File 类 指定我们要把数据存储的位置
File file = new File("/data/data/com.tiger.helloworld/info.txt");
//【2】 创建一个文件输出流
FileOutputStream fos = new FileOutputStream(file);
//【3】写入数据
fos.write(result.getBytes());
fos.close();
return true;
} catch (Exception e) {
Log.e("Utils", e.getMessage());
e.printStackTrace();
return false;
}

2、读取数据

     try {
File file = new File("/data/data/com.tiger.helloworld/info.txt");
FileInputStream fis = new FileInputStream(file);
BufferedReader bufr = new BufferedReader(new InputStreamReader(fis));
String userInfo = bufr.readLine();
fis.close();
return userInfo;
} catch (Exception e) {
Log.e("Utils", e.getMessage());
e.printStackTrace();
return null;
}

Type2:

1、通过 Content 写入数据

    try {
String result = userName + "_" + userPwd;
FileOutputStream fos = context.openFileOutput("info.txt", context.MODE_PRIVATE);
fos.write(result.getBytes());
fos.close();
return true;
} catch (Exception e) {
Log.e("Utils", e.getMessage());
e.printStackTrace();
return false;
}

2、通过 Content 读取数据

     try {
FileInputStream fis = context.openFileInput("info.txt");
BufferedReader bufr = new BufferedReader(new InputStreamReader(fis));
String userInfo = bufr.readLine();
/*while (bufr.readLine()!=null){
str+=bufr.readLine();
}*/
fis.close();
return userInfo;
} catch (Exception e) {
Log.e("Utils", e.getMessage());
e.printStackTrace();
return null;
}

6.保存InputStream图片到本地相册中

 /**
* 保存图片,并显示到 Gallery 中
*/
public void saveImage(InputStream inputStream){ try {
File externalFile = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
File directoryFile = new File(externalFile.getPath() + "/MY");
//若目录不存在则创建
if (!directoryFile.exists()) {
directoryFile.mkdirs();
} File imageFile = new File(directoryFile, "qr"+directoryFile.list().length+".jpg");
FileOutputStream fos=new FileOutputStream(imageFile); byte[] buffer=new byte[1024];
int len=-1;
while ((len=inputStream.read(buffer))!=-1){
fos.write(buffer,0,len);
} inputStream.close();
fos.close(); //发送广播扫面文件,使图片显示在Gallery中
Intent intent=new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
intent.setData(Uri.fromFile(imageFile));
mContext.sendBroadcast(intent); Log.e("","Save successful!"); } catch (Exception e) {
e.printStackTrace();
Log.e("","Save unsuccessful!");
}
}

Android-SD卡相关操作的更多相关文章

  1. Android入门开发之SD卡读写操作(转)

    SD卡的读写是我们在开发android 应用程序过程中最常见的操作.下面介绍SD卡的读写操作方式: 1. 获取SD卡的根目录 String  sdCardRoot = Environment.getE ...

  2. Android SD卡存储

    原创文章,转载请注明出处:http://www.cnblogs.com/baipengzhan/p/Android_SDcard_store.html 一 概念 SD卡存储空间比较大,当需要存取较大的 ...

  3. Android SD卡创建文件和文件夹失败

    原文:Android SD卡创建文件和文件夹失败 功能需要,尝试在本地sd卡上创建文件和文件夹的时候,报错,程序崩溃. 一般情况下,是忘记给予sd卡的读写权限.但是这里面权限已经给了,还是报错. 在网 ...

  4. Android——SD卡工具类——SDCardUtils.java

    package com.xdsjs.save.utils; /** * SD卡相关的辅助类 * Created by xdsjs on 2015/10/13. */ import java.io.Fi ...

  5. [笔记]SD卡相关资料

    ESD静电放电模块 我知道的flash分为两种NOR flash和NAND flash,NOR falsh容量一般为1~16M用于单片机代码存储,NAND flash最小的是8M最大的现在听说有90G ...

  6. imx6 android SD卡启动

    工作中需要将imx6的android系统从SD卡启动,所以就分析了MfgTool中的脚本,分析android的分区情况,并尝试自己操作,竟然成功了,记录于此. 参考文档 http://www.kanc ...

  7. Android SD卡读写

    package com.jredu.zuiyou.activity; import android.os.Bundle;import android.os.Environment;import and ...

  8. FPGA之SPI SD卡读操作

    这几天在FPGA调试与SD通信,读SD卡里的图片,之前接触32时没有去研究过SD卡,不太熟悉操作流程,在网上找了很多资料,也看了几个32开发板的资料,但大多数都讲得不是特别清楚,只能瞎操作了一番,在别 ...

  9. Android SD卡上文件

    1. 得到存储设备的目录:/SDCARD(一般情况下) SDPATH=Environment.getExternalStorageDirectory()+"/"; 2. 判断SD卡 ...

随机推荐

  1. django restframeowrk filter,search,order

    django-filters非常成熟,并且支持drf,在url中以Get参数的形式体现 filter 通用过滤 1. 基本配置 $ pip install django-filters setting ...

  2. mysql慢查询日志按天切割归纳

    问题描述: mysql开启慢查询功能,再正常不过,那么存在这样一种情况:慢查询写入的文件位置和文件名是指定好的,如果慢查询时间设定严苛,不出意外,记录慢查询的单个文件大小会日益增大,几十兆或者上百兆, ...

  3. c 判断文件或文件夹是否存在,多种方法, 为什么从一开始就不直接来个统一的呢?

    具体内容,请看: https://blog.csdn.net/u012494876/article/details/51204615 判断文件或文件夹是否存在,竟然有这么多方法: GetFileAtt ...

  4. Window下Eclipse+Tomcat远程调试

    需求:       项目在开发环境跑得好好的,但是当发布到服务器上时,却出现了一些意外的问题.服务器上不可能给你装IDE调试工具啊,又没有很好的日志帮助下,这时候就用到了JVM的Java Platfo ...

  5. Gym - 101350G Snake Rana(容器原理)

    Old Macdonald wants to build a new hen house for his hens. He buys a new rectangular area of size N  ...

  6. mysql5.7 修改root密码无法登陆原因

    升级的mysql5.7修改完root账户密码后仍然无法登陆,查阅资料可能和user表的plugin 字段为空有关. 1.首先将my.ini中加入在[mysqld]节点上加skip-grant-tabl ...

  7. 安装java8

    很多软件都是在java基础上搭建的 ,所以使用的前提是搭建好java的环境,记录下 linux版本:centos7.2 一.下载 到官网下载最新的java8 链接 注意,因为官网需要同意协议才能下载, ...

  8. 针对监控摄像机(海康、大华等)录像 .h264 文件的流媒体播放设计

    监控摄像机(海康.大华等)内部带的录像功能一般录制的是h264文件,这种文件格式简单的把每一帧h264字节数据保存到文件里. 实际使用中,可能需要对特定录像进行反复检测,以训练.改进视频检测算法的准确 ...

  9. Spotlight--你不得不用的Mac查询利器

    世界上有两种Mac用户:一种是经常使用Spotlight的,另一种是忽略Spotlight的.如果你是第二种用户,那么你需要改变.Mac所有方面的使用场景,都会随着Spotlight而变得更快.你只需 ...

  10. Django-ContentType的使用

    一.神器ContentType 如果 继续增加课程 价格策略表还得增加字段 这样django自带一个contentType 帮助我们解决表之间的依赖关系: 1.从settings文件可以看到原生就支持 ...