`
iaiai
  • 浏览: 2197885 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android 使用文件进行数据存储

阅读更多
很多时候我们开发的软件需要对处理后的数据进行存储,以供再次访问。Android为数据存储提供了如下几种方式:
  • 文件
  • SharedPreferences(参数)
  • SQLite数据库
  • 内容提供者(Content provider)
  • 网络


首先给大家介绍使用文件如何对数据进行存储
Activity提供了openFileOutput()方法可以用于把数据输出到文件中,具体的实现过程与在J2SE环境中保存数据到文件中是一样的
public class FileActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {        
         FileOutputStream outStream = this.openFileOutput("ljq.txt", Context.MODE_PRIVATE);
         outStream.write("测试数据...".getBytes());
         outStream.close();  
    }
}


openFileOutput(fileName, mode)方法详解:

第一参数:
用于指定文件名称,不能包含路径分隔符“/”。如果文件不存在,Android 会自动创建它。创建的文件保存在/data/data/<packagename>/files目录,如:/data/data/com.ljq.activity/files/itcast.txt ,通过点击MyEclipse菜单“Window”-“Show View”-“Other”,
在对话窗口中展开android文件夹,选择下面的File Explorer视图,然后在File Explorer视图中展开/data/data/<package name>/files目录就可以看到该文件

第二参数
用于指定操作模式,有四种模式
Context.MODE_PRIVATE    =  0
默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中。
可以使用Context.MODE_APPEND。
Context.MODE_APPEND    =  32768
检查文件是否存在,存在就往文件追加内容,否则就创建新文件。
Context.MODE_WORLD_READABLE =  1
表示当前文件可以被其他应用读取
Context.MODE_WORLD_WRITEABLE =  2
表示当前文件可以被其他应用写入

注意:
Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件。
如果希望文件被其他应用读和写,可以传入: openFileOutput("ljq.txt", Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE);       
android有一套自己的安全模型,当应用程序(.apk)在安装时系统就会分配给他一个userid,当该应用要去访问其他资源比如文件的时候,就需要userid匹配。默认情况下,任何应用创建的文件,sharedpreferences,数据库都应该是私有的(位于/data/data/<package name>/files),其他程序无法访问。除非在创建时指定了Context.MODE_WORLD_READABLE或者Context.MODE_WORLD_WRITEABLE ,只有这样其他程序才能正确访问。

如果要打开存放在/data/data/<package name>/files目录应用私有的文件,可以使用Activity提供openFileInput()方法。
FileInputStream inStream = this.getContext().openFileInput("ljq.txt");

或者直接使用文件的绝对路径:
File file = new File("/data/data/com.ljq.action/files/ljq.txt");
FileInputStream inStream = new FileInputStream(file);

注意:上面文件路径中的“com.ljq.action”为应用所在包,当你在编写代码时应替换为你自己应用使用的包。
对于私有文件只能被创建该文件的应用访问,如果希望文件能被其他应用读和写,可以在创建文件时,
指定Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE权限。

Activity还提供了getCacheDir()和getFilesDir()方法:
getCacheDir()方法用于获取/data/data/<package name>/cache目录
getFilesDir()方法用于获取/data/data/<package name>/files目录

案例:
FileUtil.java类:
package iaiai.test;

import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.io.OutputStream;

public class FileUtil {

	/**
	 * 保存数据
	 * 
	 * @param outputStream
	 * @param content
	 * @throws Exception
	 */
	public static void save(OutputStream outputStream, String content)
			throws Exception {
		outputStream.write(content.getBytes());
		outputStream.close();
	}

	/**
	 * 读取数据
	 * 
	 * @param inputStream
	 * @return
	 * @throws Exception
	 */
	public static String read(InputStream inputStream) throws Exception {
		// 往内存写数据
		ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
		// 缓冲区
		byte[] buffer = new byte[1024];
		int len = -1;
		while ((len = inputStream.read(buffer)) != -1) {
			byteArrayOutputStream.write(buffer, 0, len);
		}
		// 存储数据
		byte[] data = byteArrayOutputStream.toByteArray();
		byteArrayOutputStream.close();
		inputStream.close();
		return new String(data);
	}

}

MyList.java类:
package iaiai.test;

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

public class MyList extends Activity {

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		try {
			FileUtil.save(openFileOutput("test.txt", Context.MODE_PRIVATE),
					"这是测试数据.....");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}
分享到:
评论

相关推荐

    Android使用文件进行数据存储的方法

    本文实例讲述了Android使用文件进行数据存储的方法。分享给大家供大家参考。具体如下: 很多时候我们开发的软件需要对处理后的数据进行存储,以供再次访问。Android为数据存储提供了如下几种方式: 文件 ...

    Android中使用File文件进行数据存储

    Android提供了多种数据存储方式,其中包括使用File类进行文件存储。本教程将深入探讨如何在Android中利用File类进行数据操作,包括创建、读取、修改和删除文件,以及文件路径的处理。 1. **基本概念** - **File类*...

    Android存储字符串数据到txt文件

    "Android存储字符串数据到...使用FileUtils工具类可以非常方便地将字符串数据存储到txt文件中,从而满足我们的需求。但是,需要注意的是,在使用FileUtils工具类时,需要确保文件路径和文件名的正确性,以免出现错误。

    Android本地数据存储之文件存储读写

    一、Android文件存储基础 Android提供了多种本地数据存储方式,如内部存储、外部存储、SQLite数据库、SharedPreferences等。文件存储是一种简单直接的方法,适用于存储非结构化的文本、图片或其他文件类型。在...

    Android 3种数据保存(SharedPreferences存储 内部文件存储 数据库存储)

    本教程将详细介绍Android中的三种主要数据存储方式:SharedPreferences存储、内部文件存储以及数据库存储。 1. SharedPreferences存储 SharedPreferences是Android提供的一种轻量级的数据存储方式,用于保存应用...

    Android实现数据存储技术

    Android 平台中实现数据存储的五种方式分别是:使用 SharedPreferences 存储数据、文件存储数据、SQLite 数据库存储数据、使用 ContentProvider 存储数据和网络存储数据。 使用 SharedPreferences 存储数据 ...

    老罗android视频开发源码和ppt--android存储数据和文件.rar

    在Android应用开发中,数据存储和文件管理是至关重要的部分,因为这关乎到应用程序如何持久化数据、如何读写文件以及如何有效地管理用户数据。"老罗android视频开发源码和ppt--android存储数据和文件.rar"这个压缩包...

    Android案例:备忘录。利用数据存储的文件内部存储

    本案例是关于如何使用Android的数据存储机制,特别是文件内部存储,来创建一个简单的备忘录应用程序。以下是这个案例涉及到的关键知识点: 1. **数据存储方式**: - Android提供了多种数据存储方式,如...

    android 文件存储

    总结起来,Android文件存储涉及多种策略,根据数据类型、访问需求和安全性选择合适的存储方式。理解并熟练掌握这些技术对于开发高效、稳定的应用至关重要。在实际开发中,还需要注意数据备份、权限管理和文件清理等...

    Android不需要文件存储权限将文件保存至手机

    在Android系统中,传统的文件存储方式通常需要应用获取相应的文件读写权限,以便在外部存储(如SD卡)上保存和访问数据。然而,随着Android系统的更新,特别是自Android 6.0(Marshmallow)引入运行时权限管理以来,...

    android数据存储相关代码

    在Android系统中,数据存储是应用程序管理用户数据的关键部分。Android提供了多种数据存储方式,以适应不同的需求,如轻量级的数据保存、持久化的数据存储等。以下将详细阐述Android数据存储的相关知识点。 1. ...

    Android的文件存储

    Android的文件操作跟Java是一样的,文件操作分为输入流(InputStream)和输出流(OutputStream),输入流用于获取文件数据,输出流用于存储文件。 详细介绍请参考博文:...

    Android数据存储SQLite.docx

    内部文件存储是 Android 中的一种数据存储方式,它可以存储应用程序中的文件数据。内部文件存储的优点是可以存储大量数据,缺点是存储空间有限。内部文件存储的使用方法是通过 openFileOutput() 方法来创建文件,并...

    Android学习之数据存储

    本资源“Android学习之数据存储”提供了一些关于Android数据存储的源码,这对于理解Android数据存储机制及其实践应用非常有帮助。 在Android中,有多种方式来实现数据存储,包括: 1. **SharedPreferences**:这是...

    Android Excel文件写入和读取

    在Android应用开发中,有时需要处理大量的结构化数据,这时Excel文件就成为一个理想的存储选择,因为它们便于人类阅读,同时也方便程序进行数据处理。本文将详细介绍如何在Android中实现Excel文件的读取与写入。 ...

    android五种数据存储方式

    数据存储在XML文件中,安全性较低,但易于使用。 2. **内部存储**: 内部存储是应用私有的,数据安全且不易被其他应用访问。它适用于存储应用的私密数据,如配置文件、用户数据等。文件存储在/data/data/应用包名/...

    Android将数据导出为excel文件的方法

    本文将详细介绍如何在Android中实现这一功能,主要涉及的技术点包括文件操作、数据序列化以及第三方库的使用。 首先,我们需要一个能够处理Excel文件的库。Apache POI是一个流行的Java库,可以用来创建、修改MS ...

    android txt文件保存读取操作

    在Android平台上,对TXT文件进行保存和读取是常见的数据持久化操作,尤其适用于存储少量结构化的文本数据。本文将详细讲解如何在Android应用中实现TXT文件的保存和读取功能,以及涉及到的相关知识点。 首先,我们...

    【Android 文件管理】分区存储 ( 修改与删除图片文件 )

    在Android系统中,文件管理是应用程序开发者必须掌握的重要技能之一,尤其是在处理用户数据,如图片文件时。本文将深入探讨Android的分区存储机制,并详细讲解如何修改和删除图片文件。 一、Android分区存储概述 ...

Global site tag (gtag.js) - Google Analytics