Android之外部存储(SD卡)
*手机的外部存储空间,这个我们可以理解成电脑的外接移动硬盘,U盘也行。所有的Android设备都有两个文件存储区域:“内部”和“外部”存储器。这两个名称来自早期的Android,当时大多数设备都提供内置的固定的内存(内置存储器)即ROM中的内部存储,外加一个可移动的存储介质,如micro SD卡(外部存储器)。但也有些设备把固定不变的存储空间分成“内部”和“外部”两部分,这样即使没有可移动的存储介质,也总会有两个存储空间,并且不管外部存储器是可移动的,还是固定的,API的行为是相同的。
* 路径: /mnt/sdcard/
*Environment类
getExternalStorageDirectory(); // 获取sd卡的路径
getExternalStorageState(); // 获取sd卡的状态
Environment.MEDIA_MOUNTED // 挂载状态
Environment.MEDIA_UNMOUNTED // 卸载状态
* 需要添加读写SD卡的权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
// 检查SD卡是不插入和拔出
public boolean isSdMounted(View view) {
String staus = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(staus)) {
System.out.println("插入了SD卡");
return true;
} else if (Environment.MEDIA_UNMOUNTED.equals(staus)) {
System.out.println("SD卡被拔出了");
return false;
}
return false;
} // 获取SD卡的路径
public String getSdPath(View v) {
File file = Environment.getExternalStorageDirectory();
String path = file.getAbsolutePath();
return path;
} // 获取SD卡可用空间
@SuppressLint("NewApi")
public long getSdFreeSpace(View v) {
File file = Environment.getExternalStorageDirectory();
return file.getFreeSpace();
// 格式化大小
}
package com.example.qq; 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 android.os.Bundle;
import android.app.Activity;
import android.text.TextUtils;
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 etPwd;
private EditText etQQ;
private CheckBox cbRemPwd; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
etPwd = (EditText) findViewById(R.id.et_pwd);
etQQ = (EditText) findViewById(R.id.et_qq);
cbRemPwd = (CheckBox) findViewById(R.id.cb_rem_pwd); readData();
} /**
* 从文件中读取数据显示在界面上
*/
private void readData() {
File file = new File("/mnt/sdcard/waibu.txt");
try {
FileInputStream fis = new FileInputStream(file);
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
String text = br.readLine();
String[] content = text.split("==");
String qq = content[0];
String pwd = content[1];
//把QQ号码和密码显示在文本输入框
etQQ.setText(qq);
etPwd.setText(pwd);
br.close();
} catch (Exception e) {
e.printStackTrace();
} } /**
* 1. 获取用户输入的QQ号码和密码
* 2. 做非空判断
* 3. 如果用户勾选了复选框,用文件存储密码
*/
public void gelogin(View v){
// System.out.println("点击了按钮");
String pwd = etPwd.getText().toString().trim();
String qq = etQQ.getText().toString().trim();
if(TextUtils.isEmpty(pwd) || TextUtils.isEmpty(qq)){
Toast.makeText(this, "亲,请输入QQ号码或者密码哦 :) ", 0).show(); return;
}
//判断用户是否勾选复选框
boolean checked = cbRemPwd.isChecked();
if (checked) {
//用文件存储密码
try {
File file = new File("/mnt/sdcard/waibu.txt");
FileOutputStream fos = new FileOutputStream(file);
String text = qq+"=="+pwd;
fos.write(text.getBytes());
//释放资源
fos.close();
Toast.makeText(this, "密码存储成功,/mnt/sdcard/waibu.txt", 0).show();
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(this, "存储失败了 :( ", 0).show();
}
} } }
Android之外部存储(SD卡)的更多相关文章
- Android——数据存储:手机外部存储 SD卡存储
xml <EditText android:layout_width="match_parent" android:layout_height="wrap_cont ...
- [android] 保存文件到SD卡
/****************2016年5月4日 更新*****************************/ 知乎:为什么很多Android应用要把文件写到/sdcard目录下而不是写到/d ...
- android 写文件到sd卡问题小记
android 写文件到sd卡问题小记 事情是这样子的.... 这天我开始编写项目调试工具,高大上不?-----其实就是记录实时网络请求和崩溃日志相关等的小工具(此处一个会心的微笑). 然后我是这样写 ...
- Android中播放本地SD卡中歌曲须要的加入的权限
使用MediaPlayer播放本地Mp3文件时.须要注意的訪问路径的问题以及訪问权限的问题. 1.訪问路径:/storage/emulated/0 此路径即为手机的根路径,能够通过下载ES文件浏览器软 ...
- android 建数据库 SQLite 存储sd 卡或者内存
android 创建数据库调用SQLiteOpenHelper,一般不直接操作SQLiteDatabase . 是通过SQLiteOpenHelper来获取 public class DBOpenHe ...
- Android 存储(本地存储 SD卡存储 SharedPreference SQLite ContentProvider)
本文出自:http://blog.csdn.net/dt235201314/article/details/73176149 源码下载欢迎Star(updating):https://github.c ...
- Android 在外部存储读写文件
本文主要介绍android中如何在外部存储读写数据 sd卡的路径 sdcard:2.3之前的sd卡路径 mnt/sdcard:4.3之前的sd卡路径 storage/sdcard:4.3之后的sd卡路 ...
- 转 Android:文件下载和写入SD卡学习小结
转自 http://blog.csdn.net/zzp_403184692/article/details/8160739 一.文件下载 Android开发中,有时需要从网上下载一些资源以供用户使 ...
- Android -- 创建数据库到SD卡
SQLite 系统自带的SQLite是通过SQLiteOpenHelper实现的,而SQLiteOpenHelper是将数据库存储到/data/data/包名/databasas,这样做的话在没有ro ...
随机推荐
- 人工智能_4_k近邻_贝叶斯_模型评估
机器学习常用算法 k近邻算法 求出未知点 与周围最近的 k个点的距离 查看这k个点中大多数是哪一类 根号((x已知-x未知)^2+(y已知-y未知)^2) 即平面间2点距离公式 收异常点影响较大,因此 ...
- Packet for query is too large (4,544,730 > 4,194,304). You can change this value on the server by setting the 'max_allowed_packet' variable.
修改 my.ini 加上 max_allowed_packet =6710886467108864=64M默认大小4194304 也就是4M修改完成之后要重启mysql服务,如果通过命令行修改就不用 ...
- 如何入门Pytorch之二:如何搭建实用神经网络
上一节中,我们介绍了Pytorch的基本知识,如数据格式,梯度,损失等内容. 在本节中,我们将介绍如何使用Pytorch来搭建一个经典的分类神经网络. 搭建一个神经网络并训练,大致有这么四个部分: 1 ...
- Git---Ubuntu下的安装与使用
Git---Ubuntu下的安装与使用 注意:学会Git的唯一方式是在实际使用中学习,切记不要尝试先记住一大堆理论知识或者Git命令.
- pyltp安装
第一步:下载wheel文件 第二步:进入该文件的文件夹 第三步:pip install wheel文件名 注意:python的安装版本必须和pyltp的版本相同,我这版本都是pyhton3.6.之前p ...
- UVa1048 Low Cost Air Travel——最短路
很好的一道题呀 思路 状态\(d(i,j)\)表示已经经过了行程单中的\(i\)个城市,目前在城市\(j\)的最小代价,直接建边跑最短路就行了 比如机票为\(ACBD\),行程单为\(CD\),那么对 ...
- mysql5.7安装中的问题(服务无法启动。服务没有报告任何错误。排查方法)
1.拒绝访问的问题 权限不够,必须以管理员身份启动命令行 2.MySQL 服务无法启动.服务没有报告任何错误. 进入到你的mysql安装目录,C:\Program Files\MySQL\MySQL ...
- new一个对象的过程
不用死记硬背,理解才是硬道理.只需要写个例子,然后输出看一下就清楚了 首先我们看下new Person输出什么? var Person = function(name, age) { this.nam ...
- P1198最大数——线段树点修改&&模板题
题目 题目链接 大意:维护一个数列,有两种操作: 查询操作Q L:查询当前数列中末尾L个数中的最大的数 插入操作A n:将n加上t再对D取模,将所得值插入数列末尾 解决方案 由题意知,只有两种操作 ...
- eq(index|-index)
eq(index|-index) 概述 获取当前链式操作中第N个jQuery对象,返回jQuery对象,当参数大于等于0时为正向选取,比如0代表第一个,1代表第二个.当参数为负数时为反向选取,比如-1 ...