`
xmong
  • 浏览: 258731 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

android数据存储之Files

 
阅读更多
android数据存储之Files

Files存储可以通过Activity提供的openFileOutput()方法将数据保存到指定的文件中,也可以通过openFileInput来读取存储的文件。通常可以用来存放文本,图片,音频等文件,其文件默认存放位置为:/data/data/<包名>/files目录下。
基于上面的例子,新建一个activity实现如下:
package com.file;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;

import android.os.Bundle;
import android.app.Activity;

public class Activity2 extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity1);
		//将数据保存到文件中
		saveFile();
		//从文件中获取数据
		getFile();
		
	}
	
	public void saveFile(){
		System.out.println("save file");
		//构建properties对象,保存数据
		Properties properties = new Properties();
		properties.put("name", "xmong");
		properties.put("age", "20");
		
		try {
			//以私有模式打开file.cfg文件,如果该文件不存在则系统会自动创建它
			FileOutputStream fos = this.openFileOutput("file.cfg", MODE_PRIVATE);
			//将数据打包存储
			properties.store(fos, "");
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		
	}
	
	
	public void getFile(){
		
		System.out.println("get file");
		//构建properties对象
		Properties properties = new Properties();
		try {
			//打开file.cfg的读取流
			FileInputStream fis = this.openFileInput("file.cfg");
			//将数据加载到properties对象中
			properties.load(fis);
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		System.out.println("name:"+properties.getProperty("name"));
		System.out.println("age:"+properties.getProperty("age"));
		
	}

	
}

activity程序运行结果如下:
save file
get file
name:xmong
age:20


程序运行后通过DDMS的File Explor查看到/data/data/com.example/files目录下生成了一个file.cfg文件,导出该文件内容如下:
#
#Wed Apr 17 07:40:04 GMT+00:00 2013
age=20
name=xmong


上面使用openFileOutput()需要指定两个参数,第一个参数为文件路径名,第二个参数为文件的操作模式,Context提供了四种操作模式:
Context.MODE_PRIVATE = 0
Context.MODE_APPEND = 32768
Context.MODE_WORLD_READABLE = 1
Context.MODE_WORLD_WRITEABLE = 2

MODE_PRIVATE:私有模式,一般为默认操作模式,代表该文件是私有数据,只能被该应用访问。在该模式下写入的数据都是覆盖原文件中的内容。
MODE_APPEND:追加模式,在该模式下写入的数据都是追加到文件内容中。
MODE_WORLD_READABLE:表示当前文件可以被其他应用程序读取。
MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用程序写入。
如果希望其他应用程序可以对文件进行读和写,则可以将操作模式制定为:MODE_WORLD_READABLE+ MODE_WORLD_WRITEABLE。即:
FileOutputStream fos = this.openFileOutput("file.cfg", MODE_WORLD_READABLE+MODE_WORLD_WRITEABLE);
Android系统有自己的一套安全模型,当应用程序(.apk)在安装时系统就会给其分配一个userid,当一个应用程序要去访问资源文件的时候就需要userid匹配,默认情况下,其他应用程序不能访问该应用程序的资源文件,除非将需要其他应用访问的资源指定为MODE_WORLD_READABLE或MODE_WORLD_WRITEABLE模式。
如果要获取Files的存储路径我们也可以同Activity提供的getFileDir()方法来获取/data/data/<包名>/files目录。

源代码下载:http://xmong.iteye.com/blog/1852204

分享到:
评论

相关推荐

    android 数据存储之 Files

    NULL 博文链接:https://byandby.iteye.com/blog/833429

    android数据存储

    在Android中,提供了三种数据存储的途径,和两种存储方式。 三种途径: l 系统配置(Shared Preferences): 这类应用主要是系统的配置信息的保存,比如我给程序界面设置了颜色,我想在下一次启动时还是能够保留...

    Android 如何使用Files方式的 数据存储实例附源码.rar

    Android Files 数据存储方法演示附源码,Android 如何使用Files方式的 数据存储实例附源码,演示了模拟用户设置参数,查看 Files 产生的文件。  如果你需要用一个文件来加载初始化程序 ,可以事先在目录下res/raw/...

    android数据存储之文件存储方法

    文件存储是 Android 中最基本的一种数据存储方式,它不对存储的内容进行任何的格式化处理,所有数据都是原封不动的保存到文件当中的。 概述 文件存取的核心就是输入流和输出流。 Android文件的操作模式 文件的相关...

    Android 使用Shared Preferences进行数据存储-样例.rar

    Android 使用Shared Preferences进行数据存储-样例,演示如何使用 Shared Preferences 获得数据和保存数据、如何使用getPreferences方法创建文件的模式,以及如何使用getPreferences模拟用户参数设置、查看 ...

    Android 文件数据存储实例详解

    Android之文件数据存储 一、文件保存数据介绍 Activity提供了openFileOutput()方法可以用于把数据输出到文件中,具体的实现过程与在J2SE环境中保存数据到文件中是一样的。文件可用来存放大量数据,如文本、图书、...

    Android开发笔记之Android中数据的存储方式(二)

    今天我们在讲下Android开发笔记之Android中数据的存储方式(一) 提到的除了SharedPreferences和Files(文本文件)以外的其他几种数据储存方式:xml文件、SQLite数据和Network。 1.3 例子  3. xml:  小案例:...

    android开发揭秘PDF

    6.1 Android数据存储初探 6.2 数据存储之Shared Preferences 6.3 数据存储之Files 6.4 数据存储之Network 6.5 Android数据库编程 6.5.1 SQLite简介 6.5.2 SQLite编程详解 6.5.3 SQLiteOpenHelper应用 6.6 数据共享...

    实例详解Android文件存储数据方式

    总体的来讲,数据存储方式有三种:一个是文件,一个是数据库,另一个则是网络。下面通过本文给大家介绍Android文件存储数据方式。 1.文件存储数据使用了Java中的IO操作来进行文件的保存和读取,只不过Android在...

    android往手机内存和sdcard卡上存储数据

    一段详细的往手机内存和手机sdcard卡上面存储数据的代码,作者对里面的功能进行了封装,在实际的开发项目中可以直接拿来用。

    文件存储数据

    Android存储数据方式之一——————文件存储数据

    android_files.rar

    Android中的文件存储数据方式示例代码

    《Android应用开发揭秘》附带光盘代码.

     6.1 Android数据存储初探  6.2 数据存储之Shared Preferences  6.3 数据存储之Files  6.4 数据存储之Network  6.5 Android数据库编程  6.5.1 SQLite简介  6.5.2 SQLite编程详解  6.5.3 SQLiteOpenHelper...

    Android应用开发揭秘pdf高清版

    6.1 Android数据存储初探 6.2 数据存储之Shared Preferences 6.3 数据存储之Files 6.4 数据存储之Network 6.5 Android数据库编程 6.5.1 SQLite简介 6.5.2 SQLite编程详解 6.5.3 SQLiteOpenHelper应用 6.6 数据共享...

    《Android应用开发揭秘》源码

     6.1 Android数据存储初探  6.2 数据存储之Shared Preferences  6.3 数据存储之Files  6.4 数据存储之Network  6.5 Android数据库编程  6.5.1 SQLite简介  6.5.2 SQLite编程详解  6.5.3 SQLiteOpenHelper...

    Android应用开发揭秘(pdf )

     如何通过Shared Preferences、Files、Network和SQLite等方式高效实现Android数据的存储?又如何通过Content Providers轻松地实现Androld数据的共享?  如何使用Open Core、MediaPlayer、MediaRecorder方便快速地...

    Android 保存文件路径方法

    getExternalFilesDir()方法可以获取到 SDCard/Android/data/你的应用的包名/files/ 目录, 一般放一些长时间保存的数据 getExternalCacheDir()方法可以获取到 SDCard/Android/data/你的应用包名/cache/目录, 一般...

    新版Android开发教程.rar

    ----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 ...• SQLite SQLite SQLite SQLite 用作结构化的数据存储 • 多媒体支持 包括常见的音频、视频和...

Global site tag (gtag.js) - Google Analytics