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;@Overrideprotected 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();}}}}

 


 

转载于:https://www.cnblogs.com/loaderman/p/6430785.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/371477.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

通用并发对象池

在本文中&#xff0c;我们将介绍如何在Java中创建对象池。 近年来&#xff0c;JVM的性能成倍增加&#xff0c;大多数类型的对象几乎都变得多余&#xff0c;从而提高了对象池的性能。 从本质上讲&#xff0c;对象的创建不再像以前那样昂贵。 但是&#xff0c;有些对象在创建时肯…

圆周率的代码表示,以及对其的理解。

转载的简书&#xff0c;for 记录以及记忆。 http://www.jianshu.com/p/7208e4a58310 Thanks again&#xff01; 转载于:https://www.cnblogs.com/xiapeng0701/p/7538281.html

华为NOVa8Pr0是用鸿蒙系统吗,华为Nova8即将发布,采用麒麟芯片,高端平板适配鸿蒙系统...

大家好&#xff0c;我是老孙自从华为Mate40系列发布后&#xff0c;下一步新机动态备受外界关注&#xff0c;华为究竟会不会继续生产手机呢&#xff1f;答案是肯定&#xff0c;华为Nova8系列将于本月发布&#xff0c;华为P50系列也在积极筹备&#xff0c;而且都少不了麒麟芯片&a…

使用路标的Scala和Java的Twitter REST API

如果您已阅读此博客上的其他文章&#xff0c;您可能会知道我喜欢创建各种数据集的可视化。 我刚刚开始一个小项目&#xff0c;在这里我想可视化来自Twitter的一些数据。 为此&#xff0c;我想直接从Twitter检索有关关注者的信息和个人资料信息。 我实际上开始寻找一组所有推特帐…

大话设计模式读书笔记--11.抽象工厂模式

定义 抽象工厂模式定义: 提供一个创建一系列相关或相关依赖对象的接口,而无需指定他们具体的类 抽象工厂模式通常是用于创建一族产品&#xff0c;并且这族产品分不同的等级&#xff1b;不同的具体工厂类生产不同等级的一族产品 比如下图(来源于网络) 两厢车和三厢车称为两个不同…

在线压缩html,JS代码压缩 - javascript代码压缩 - jsmin在线js压缩工具

输入代码&#xff1a;// is.js// (c) 2001 Douglas Crockford// 2001 June 3// The -is- object is used to identify the browser. Every browser edition// identifies itself, but there is no standard way of doing it, and some of// the identification is deceptive. T…

Primefaces dataTable设置某个cell的样式问题

设置primefaces dataTable的源网段列的Cell可以编辑&#xff0c;当回车键保存时&#xff0c;判断是否输入的网段合法&#xff0c;如果不合法就显示警告信息&#xff0c;并将这个不合法的数据用红色表示。问题是&#xff0c;怎么给这一个cell设定样式。通过给标签设定ID然后在后…

鸭子在Java中打字? 好吧,不完全是

根据维基百科&#xff0c;鸭子的打字是&#xff1a; 动态类型的类型&#xff0c;其中对象的方法和属性确定有效的语义&#xff0c;而不是其从特定类或特定接口的实现继承 用简单的话 当我看到一只鸟走路像鸭子&#xff0c;游泳像鸭子&#xff0c;嘎嘎像鸭子一样时&#xff0c…

前端学习路线

第一部分 HTML 第一章 职业规划和前景 职业方向规划定位&#xff1a; web前端开发工程师 web网站架构师 自己创业 转岗管理或其他 web前端开发的前景展望&#xff1a; 未来IT行业企业需求最多的人才 结合最新的html5抢占移动端的市场 自己创业做老板 随着互联网的普及we…

p1164【立方体求和】

题目&#xff1a; SubRaY有一天得到一块西瓜,是长方体形的....SubRaY发现这块西瓜长m厘米,宽n厘米,高h厘米.他发现如果把这块西瓜平均地分成m*n*h块1立方厘米的小正方体,那么每一小块都会有一个营养值(可能为负,因为西瓜是有可能坏掉的,但是绝对值不超过200).现在SubRaY决定从这…

html生成自定义表格,自定义js的表格插件

场景&#xff1a;指定元素&#xff0c;生成自定义表格。目的&#xff1a;了解js的插件开发。html代码&#xff1a;自定义表格插件var test new MyTable({elid:"mytable",//定义哪个div要生成表单thead:{//指定列名name:"姓名",age:"年龄",addr:…

使用JBehave,Gradle和Jenkins的行为驱动开发(BDD)

行为驱动开发 &#xff08;BDD&#xff09;是一个协作过程 &#xff0c;产品负责人&#xff0c;开发人员和测试人员可以合作交付可为企业带来价值的软件。 BDD是 测试驱动开发 &#xff08;TDD&#xff09; 的合理下一步 。 行为驱动的发展 本质上&#xff0c;BDD是一种交付…

手型显示html,css各种手型集合(css禁止手型)

html>css各种手型集合(css禁止手型).auto { cursor: auto; }.deafult { cursor: default; }.none { cursor: none; }.context-menu { cursor: context-menu; }.help { cursor: help; }.pointer { cursor: pointer; }.p…

Maven Fluido Skin和Javadoc类图

我使用Maven网站已有一段时间了&#xff0c;对此我感到非常满意。 我不想在Maven 3之后更新我的项目&#xff0c;但是没关系&#xff0c;Maven 3带来了许多新奇的东西。 但是&#xff0c;有两件事使我感到烦恼&#xff1a;缺乏美观和现代的外观&#xff0c;以及浏览复杂代码的J…

ZooKeeper安装,部署

实验环境 192.168.1.10  Zookeeper1:2181, Zookeeper2:2182 192.168.1.11  ZooKeeper3:2181 依赖环境 JDK1.7 安装&#xff0c;配置 1、下载解压 # 192.168.1.10cd /data/server tar -zxv -f zookeeper-3.4.6.tar.gz ln -s zookeeper-3.4.6 zookeeper1ln -s zookeeper-3.4.…

咸宁省2021年模拟高考成绩查询怎么查,2021咸宁市地区高考成绩排名查询,咸宁市高考各高中成绩喜报榜单...

距离2018年高考还有不到一个月的时间了&#xff0c;很多人在准备最后冲刺的同时&#xff0c;也在关心高考成绩。2018各地区高考成绩排名查询,高考各高中成绩喜报榜单尚未公布&#xff0c;下面是往年各地区高考成绩排名查询,高考各高中成绩喜报榜单&#xff0c;想要了解同学可以…

保证主题,JMS规范和ActiveMQ的消息传递

最近&#xff0c;一个客户要求我仔细研究ActiveMQ的“持久”消息的实现&#xff0c;它如何应用于主题以及在存在非持久订阅者的故障转移方案中会发生什么。 我已经了解到&#xff0c;JMS语义规定&#xff0c;即使面对消息代理提供者失败&#xff0c;也只能保证主题的持久订户以…

java中的除法及求余运算特殊性。

1.如果除法运算符的两个操作数都是整数类型&#xff0c;则计算结果也是整数&#xff0c;就是将自然除法的结果截断取整&#xff0c;例如19/4的结果是4&#xff0c;而不是5。并且除数不能0&#xff0c;否则将引起除0异常 2.如果运算符的两个操作数有1个是浮点数&#xff0c;或两…

林海峰老师python课件密码

egon4573转载于:https://www.cnblogs.com/fengjunhua/p/7395591.html

国际旅游管理专业跨专业考计算机,旅游管理考研我想跨专业考旅游管理专业的研究 – 手机爱问...

2005-12-11我是学旅游管理的大一学生,听人说这专业就这位兄弟提出的苦恼在大学生中很典型呀!其实你说的不尽然!旅游管理专业,是个很有前景的专业呀!怎么会没有前途呀?你对自己的人生也太悲观了吧?就是你说,学校不太好,这可能对自身在大学四年的发展有所限制,但这主要还是看自…