Android的File存储方式分为两种,一种是保存在手机内存中,一种是保存在移动存储设备中(如SD卡)
前者默认是私有的,即只有本应用程序能使用,当然,可以通过设置Mode来修改权限.其保存的内容会随着应用程序的卸载而被清除,放置在/data/data/com.***/files目录下
后者是公用的(world-readable),只要有访问设备的权限,就可以对其中的内容进行读写操作,同时其中的内容能随时被清除.
内存储(私有)
/*读文件*/
FileInputStream fis = null;
try {
fis = openFileInput("myfile1.txt");
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len = 0;
while((len = fis.read(buffer))>-1){
bos.write(buffer, 0, len);
}
String temp = bos.toString();
Log.e("abc", temp);
} catch (Exception e) {
e.printStackTrace();
}finally{
if(fis != null){
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/*写文件*/
FileOutputStream fos = null;
try {
fos = openFileOutput("myfile1.txt", 0);
fos.write("hello world".getBytes());
} catch (Exception e) {
e.printStackTrace();
} finally{
if(fos != null){
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
外存储(SD卡)
检查手机上是否有额外的存储设备
调用Environment.getExternalStorageState()返回当前设备的状态
MEDIA_REMOVED:找不到设备
MEDIA_UNMOUNTED:设备尚未安装
MEDIA_CHECKING:检查中
MEDIA_NOFS:设备无效或不被支持
MEDIA_MOUNTED:能获取到设备,并接受读写操作
MEDIA_MOUNTED_READ_ONLY:能获取到设备,但只接受读操作
MEDIA_SHARED:设备尚未安装,但能通过USB设备来存储,例如与PC连接
MEDIA_BAD_REMOVAL:设备安装过,但被错误删除了
MEDIA_UNMOUNTABLE:找到设备,但安装不了
(这里的状态只是通过源代码获得,并未进行测试)
可以看出只有当状态为MEDIA_MOUNTED或者MEDIA_MOUNTED_READ_ONLY才能进行读写操作
下面是判断设备状态及获得sdcard路径的代码片段:
boolean canRead = false;
boolean canWrite = false;
String state = Environment.getExternalStorageState();
if(Environment.MEDIA_MOUNTED.equals(state)){
canRead = canWrite = true;
}else if(Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)){
canRead = true;
canWrite = false;
}else{
canRead = canWrite = false;
}
File root = Environment.getExternalStorageDirectory();//获得sdcard的根目录
File dir = new File(root+"/"+Environment.DIRECTORY_DOWNLOADS);
//File dir = getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS);//跟上面是一样的
if(!dir.exists()){
dir.mkdirs();
}
Log.e("path", "path="+dir.getAbsolutePath());
File file = new File(dir, "text.txt");//在sdcard里新建一个文本文件
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
最后,对sd卡进行操作需要设置权限,可在AndroidManifest.xml文件里添加
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
分享到:
相关推荐
Android的文件浏览器/文件选择器,可以集成到应用程序中,从内部/外部存储中浏览/选择文件。
Android数据存储——SharedPrefences、File、Sqlite 类与activity实现
Android手机平台音乐播放器毕业论文 目录 第一章 引 言 - 1 - 1.1 项目背景 - 1 - 1.2 编写目的 - 2 - 第二章 系统需求分析 - 3 -...5.6.2 File存储方式 - 48 - 5.6.3 SQLiteDatabase数据库 - 48 - 第六章 结 论 - 49 -
该资源包含了一个android实现的数据存储,包含了利用:sharedpreference,file,sqlite,网络存储的四种方法,简单易懂。
2、File存储数据 3、掌握SQLite存储数据方法。 4、会使用SQLiteOpenHelper辅助类,进行操作数据库。 四、实验用的仪器和材料: PC+Eclipse+ADT 五、实验的步骤和方法: 1、读写其他应用程序SharedPreferences。 ...
目录 第一章 引 言 - 1 - 1.1 项目背景 - 1 - 1.2 编写目的 - 2 - 第二章 系统需求分析 - 3 - 2.1 功能需求(用例图分析) - 3 - ...5.6.2 File存储方式 - 48 - 5.6.3 SQLiteDatabase数据库 - 48 - 第六章 结 论 - 49 -
数据存储在开发中是使用最频繁的,在这里主要介绍Android平台中实现数据存储的4种方式,分别是:1 使用SharedPreferences存储数据;2 文件存储数据;3 SQLite数据库存储数据;4 使用ContentProvider存储数据;
数据存储Data Storage 52 概览Storage quickview 52 ? 系统偏好:快速,轻量级存储 52 ? 文件:存储到设备内部或可移动闪存 52 ? 数据库:任意的结构化存储 52 ? 支持基于网络的存储 52 系统偏好Preferences 53 文件...
Android项目开发中使用的数据存储方式有:网络存储、sqlite存储、File存储和SharedPreferences存储,四种存储方式对应的Demo别人是NetworkDemo、SqliteDemo、FileDemo和SharedPreferencesDemo,根据应用的场景选择...
访问android 手机内存与存储卡 本示例程序 为访问本机内存与存储卡-------File 的创建与删除
Android提供以下四种存储方式: SharePreference SQLite File ContentProvider Android系统中数据基本都是私有的,一般存放在“data/data/程序包名”目录下。如果要实现数据共享,正确的方式是使用...
一个轻量级的Android库,可让用户从存储中选择文件夹/文件。 一些示例用法 要求用户选择文件夹以保存您的应用文件。 要求用户指向一个文件夹以导入/导出数据。 要求用户从手机存储中选择文件以进行查看,编辑或...
此文件为FileProvider文件存储到本地然后然后再进行设置的,代码逻辑是先下载bitmap到本地file路径下然后当用到的时候再从本地获取图片,当数据发生改变时再次存储然后设置
教程说明见 http://www.linuxidc.com/Linux/2012-01/51441.htm
android 四种存储方式 file SharedPreferences ContentProvider SQLite的简单使用示例
Android自学笔记-8-Android数据存储1:文件、SharedPreferences和获取sd卡信息
----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 ...• SQLite SQLite SQLite SQLite 用作结构化的数据存储 • 多媒体支持 包括常见的音频、视频和...
(1)熟悉Android系统提供的四种数据存储方式:SharePreference、SQLite、ContentProvider和File (2)学会编写程序使用SQLite数据库存储数据 (3)学会编写程序使用SharedPreference对象存储数据 (4)学会编写...