`

android数据存储之Files

阅读更多
adb shell -> ls ->cd data -> cd 项目的包名->cd files -> ls ->这样就会看见你创建的文件

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

openFileOutput()方法的第一参数用于指定文件名称,不能包含路径分隔符“/” ,如果文件不存在,Android 会自动创建它。创建的文件保存在/data/data/<package name>/files目录,如: /data/data/cn.itcast.action/files/itcast.txt ,通过点击Eclipse菜单“Window”-“Show View”-“Other”,在对话窗口中展开android文件夹,选择下面的File Explorer视图,然后在File Explorer视图中展开/data/data/<package name>/files目录就可以看到该文件。
openFileOutput()方法的第二参数用于指定操作模式,有四种模式,分别为: Context.MODE_PRIVATE    = 0
Context.MODE_APPEND    = 32768
Context.MODE_WORLD_READABLE = 1
Context.MODE_WORLD_WRITEABLE = 2

Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中。可以使用Context.MODE_APPEND
Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件。
Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件。
MODE_WORLD_READABLE:表示当前文件可以被其他应用读取;MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入。
如果希望文件被其他应用读和写,可以传入:
openFileOutput("itcast.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("itcast.txt");
Log.i("FileTest", readInStream(inStream));

readInStream()的方法请看本页下面备注。

或者直接使用文件的绝对路径:
File file = new File("/data/data/cn.itcast.action/files/itcast.txt");
FileInputStream inStream = new FileInputStream(file);
Log.i("FileTest", readInStream(inStream));

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

Activity还提供了getCacheDir()和getFilesDir()方法,方法可以获得当前的手机自带的存储空间中的当前包文件的路径:
getCacheDir()方法用于获取/data/data/<package name>/cache目录
getFilesDir()方法用于获取/data/data/<package name>/files目录


转自:http://www.cnblogs.com/dynasty/archive/2011/03/01/1968430.html
分享到:
评论

相关推荐

    android 数据存储之 Files

    本文将深入探讨“android 数据存储之 Files”,重点关注如何使用`java.io.File`类在Android设备上进行文件存储。`Files`通常指的是通过创建和操作文件来存储数据的方式,这是Android提供的一种简单而直接的数据持久...

    Android学习之数据存储

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

    Android数据存储之Sdcard

    在Android系统中,数据存储是应用开发的重要环节,它涉及到用户数据的持久化,以便在应用关闭或设备重启后还能保持信息。Sdcard(Secure Digital Card)是Android设备常用的外部存储器,用于存放大量的非敏感数据,...

    android之存储数据的四大方式

    在Android系统中,存储数据的方式主要有四种:内部存储、外部存储、SQLite数据库和SharedPreferences。这四种方式各有特点,适用于不同的应用场景。以下是对这四大存储方式的详细解释。 1. **内部存储** 内部存储...

    android五种数据存储方式

    在Android开发中,数据存储是不可或缺的一部分,它用于持久化应用程序的数据,以便在用户退出或设备重启后仍能保留这些信息。Android提供了五种主要的数据存储方式:共享首选项(SharedPreferences)、内部存储...

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

    本文将深入探讨如何在Android中无需文件存储权限即可保存文件到手机,以及与之相关的权限管理、文件读写和清除缓存等知识点。 1. **运行时权限管理**:自Android 6.0开始,系统不再在安装时一次性授予所有权限,...

    安卓Android源码——学习之数据存储.zip

    在安卓(Android)开发中,数据存储是至关重要的一个环节,它涉及到应用程序如何持久化地保存用户数据、配置信息以及应用程序的...对于初学者来说,这是一个宝贵的资源,可以帮助他们掌握Android数据存储的核心概念。

    Android学习之数据存储.7z

    这个压缩包“Android学习之数据存储”可能包含了关于这些方法的实例代码,是学习和实践Android数据存储的好资源。通过深入学习和实践,你可以更好地掌握Android数据存储技术,提升应用的开发能力。

    android 的数据存储

    ### Android 数据存储详解 #### 第一章:数据存储方式概览 在开发Android应用时,开发者需要根据实际需求选择合适的数据存储方式。本章节将详细介绍Android应用中的几种常见数据存储方式及其应用场景。 - **...

    Android Files

    综上所述,`Android Files`压缩包中可能包含了一系列关于Android系统中文件管理、I/O操作、数据存储以及通信功能的示例代码和资源,对于开发者来说,这些都是深入了解Android平台和提升技能的重要参考资料。

    Android存储数据之一:文件保存与读取.pdf

    在Android开发中,文件的保存与读取是数据持久化的基础操作,涉及到的知识点主要包含以下几个方面: 1. Android文件系统结构:Android系统中,每个应用运行在独立的沙盒中,拥有自己私有的文件系统目录。应用的私有...

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

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

    第8章 移动信息仓库—Android的数据存储操作.pdf

    ### 第8章 移动信息仓库—Android的数据存储操作 #### 学习目标 - 掌握Android在存储方面的系统知识; - 学习各类存储方式的使用及具体步骤; - 了解SQLite数据库的存储实现; - 掌握Content Provider方式的存储...

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

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

    Android应用源码之23.数据存储(2).zip

    数据存储(2).zip”提供了一些关于Android数据存储的实例代码,适用于开发者进行参考和学习。下面将详细介绍这个主题中的关键知识点。 一、Shared Preferences Shared Preferences是Android中最简单的数据存储方式,...

    Android_数据存储与访问

    在Android开发中,数据存储与访问是至关重要的环节,它涉及到如何持久化应用程序的数据以便后续使用或共享。Android提供了多种数据存储方式,包括文件、SharedPreferences、SQLite数据库、内容提供者和网络存储。...

    内部存储来存储数据

    总结起来,内部存储是Android应用存储数据的重要手段,提供了私有、安全的数据存储环境。通过合理利用内部存储,开发者可以实现应用的数据持久化,同时确保数据安全。在实际开发中,应根据需求选择合适的数据存储...

    Android应用源码之22.数据存储(1).zip

    数据存储(1)"提供了关于Android数据存储的源代码示例,帮助开发者深入理解这一主题。下面将详细介绍Android中的数据存储方式及其应用场景。 1. **SharedPreferences** SharedPreferences是Android中一种轻量级的...

Global site tag (gtag.js) - Google Analytics