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. 题解:[APIO2007]风铃

    你需要选一个满足下面两个条件的风铃:(1) 所有的玩具都在同一层(也就是说,每个玩具到天花板之间的杆的个数是一样的)或至多相差一层.(2) 对于两个相差一层的玩具,左边的玩具比右边的玩具要更靠下一点. ...

  2. vue实战记录(二)- vue实现购物车功能之创建vue实例

    vue实战,一步步实现vue购物车功能的过程记录,课程与素材来自慕课网,自己搭建了express本地服务器来请求数据 作者:狐狸家的鱼 本文链接:vue实战-实现购物车功能(二) GitHub:sue ...

  3. 【Noip2015】斗地主

    题目 #include<bits/stdc++.h> using namespace std; int pai[20],T; //pai[]统计牌的数量 int n; int ans; v ...

  4. 2017-12-19python全栈9期第四天第二节之列表的增删改查之切片

    #!/user/bin/python# -*- coding:utf-8 -*-li = ['zd',[1,3,4,5,6],'ls','ww','zl']l1 = li[0]print(l1)l2 ...

  5. GO语言系列(五)- 结构体和接口

    结构体(Struct) Go中struct的特点 1. 用来自定义复杂数据结构 2. struct里面可以包含多个字段(属性) 3. struct类型可以定义方法,注意和函数的区分 4. struct ...

  6. 金融量化分析【day112】:股票数据分析Tushare2

    目录 1.使用tushare包获取某股票的历史行情数据 2.使用pandas包计算该股票历史数据的5日局限和60日均线 3.matplotlib包可视化历史数据的收盘价和历史均线 4.分析输出所有金叉 ...

  7. 【JS】CharToAsciiToBinaryToAsciiToChar

    <!DOCTYPE html> <html> <head> <script src="/jquery/jquery-1.11.1.min.js&qu ...

  8. win10安装VMware v14.1.1.28517

    一.下载 VMware v14.1.1.28517 下载地址(包含安装说明):http://www.downza.cn/soft/74728.html 二.VMware Workstation 14 ...

  9. 基于百度API+Flask实现网页版和图灵机器聊天

    开发前准备 调用百度和图灵机器人相关的 参考链接:www.cnblogs.com/changtao/p/10596385.html 下载一个网页录音的js插件 链接:https://pan.baidu ...

  10. Django部署方法

    Windows方案: Apache2.4 + Django2.0 网上的方法乱七八糟: 那么接下来:最好的方法,不行吃屎. 当前环境是Django2.0+ python35(64bit) 部署原因: ...