`

Android应用数据存储几种方式(1)

阅读更多
    在android中所有的应用软件数据为该应用软件所私有,同样它也提供了一种标准方式供应用软件将私有数据开放给其他应用软件.android中有sharedPreferences,文件存储,SQLite数据库方式,内容提供器(content provider)和网络.

1)sharedPreferences存储
    比如一些默认欢迎语,登录用户名,密码等以键值对的信息我们一般用它来存储;
step 1:首先我们可以通过
   
    //获得一个sharedPreferences对象
    getSharedPreferences(SETTING_INFOS, 0);
    public static final String SETTING_INFOS = "SETTING_Infos";
    public static final String NAME = "NAME";
    public static final String PASSWORD = "PASSWORD";
    SharedPreferences settings = getSharedPreferences(SETTING_INFOS, 0); 
    //获取一个SharedPreferences 对象
    String name = settings.getString(NAME, ""); 
    //取出保存的NAME
    String password = settings.getString(PASSWORD, ""); 
    //取出保存的PASSWORD


step 2:在程序运行onStop过程,也就是在程序退出时,首先使用getSharedPreferences得到settings,然后调用edit()方法使其处于可以编辑状态,并使用putString将两个EditText中的值保存起来,最后使用commit()方法提交即可保存;
    @Override
    protected void onStop(){
        super.onStop();
        SharedPreferences settings = getSharedPreferences(SETTING_INFOS, 0); 
        settings.edit().putString(NAME, field_name.getText().toString()).putString(PASSWORD, filed_pass.getText().toString()).commit();
     }
 //将用户名和密码保存进去

     注意:SharedPreferences 是以XML 的格式以文件的方式自动保存的,在DDMS 中的File Explorer 中展开到/data/data/<package name>/shared_prefs 下,以上面这个为例,可以看到一个叫做SETTING_Infos.xml 的文件;Preferences 只能在同一个包内使用,不能在不同的包之间使用;

2) 文件存储
    前面介绍的Shared Preferences 存储方式非常方便,但是其只适合存储比较简单的数据,如果需要存储更多的数据,可行选择的方式有好几种,这里先给读者介绍文件存储的方法和传统的Java 中实现I/O 的程序类似,在Android 中,其提供了openFileInput 和openFileOuput方法读取设备上的文件,下面看个例子代码,具体如下所示:

    String FILE_NAME = "tempfile.tmp";//确定要操作文件的文件名
 // Create a new output file stream that's private to this application
    FileOutputStream fos = openFileOutput(FILE_NAME, Context.MODE_PRIVATE); //初始化
    // Create a new file input stream.
    FileInputStream fis = openFileInput(FILE_NAME); //创建写入流

    上述代码中两个方法只支持读取该应用目录下的文件,读取非其自身目录下的文件将 会抛出异常.需要提醒的是,如果调用FileOutputStream 时指定的文件不存在,Android 会自动创建它.另外,在默认情况下,写入的时候会覆盖原文件内容,如果想把新写入的内容附加到原文件内容后,则可以指定其mode为Context.MODE_APPEND.
    注意:默认情况下,使用openFileOutput 方法创建的文件只能被其调用的应用使用,其他应用无法读取这个文件,如果需要在不同的应用中共享数据,可以使用Content Provider 实现,关于Content Provider 我们将在稍后的内容中介绍

资源文件放在哪里?
    如果你的应用需要一些额外的资源文件,例如,一些用来测试你写的音乐播放器是否可以正常工作的 MP3 文件,可以将这些文件放在应用程序的/res/raw/下,如mydata.mp3.那么就可以在你的应用中使用getResources 获取资源后,以openRawResource 方法(不带后缀的资源文件名)打开这个文件,实现代码如下所示:
    Resources myResources = getResources();
   InputStream myFile = myResources.openRawResource(R.raw.myfilename);
分享到:
评论

相关推荐

    android 数据存储的几种方式

    数据存储方式有三种:一个是文件,一个是数据库,另一个则是网络。其中文件和数据库可能用的稍多一些,文件用起来较为方便,程序可以自己定义格式;数据库用起稍烦锁一些,但它有它的优点,比如在海量数据时性能优越...

    Android四种数据存储的应用方式

    主要介绍了Android四种数据存储的应用方式的相关资料,希望通过本文能帮助到大家,让大家理解掌握Android存储数据的方法,需要的朋友可以参考下

    android 数据存储

    主要讲解android 数据存储基本的几种方式,以及跨平台数据共享

    Android高级编程--源代码

    1.5.4 SQLite 数据存储和检索数据库 6 1.5.5 共享数据和应用程序间通信 7 1.5.6 使用Google Talk的P2P服务 7 1.5.7 扩展的数据支持和2D/3D图形 7 1.5.8 优化的内存和进程管理 8 1.6 开放手机联盟简介 8 1.7 ...

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

    对于开发平台来讲,如果对数据的存储有良好的支持,那么对应用程序的开发将会有很大的促进作用。  总体的来讲,数据存储... 对于Android平台来讲,它的存储方式也不外乎这几种,按方式总体来分,也是文件,数据库和

    Android开发笔记之: 数据存储方式详解

    无论是神马平台,神马开发环境,神马软件程序,数据都是核心。对于开发平台来讲,如果对数据的存储有良好的支持,那么对应用程序的开发将会有很大的促进...对于Android平台来讲,它的存储方式也不外乎这几种,按方式

    Google Android开发入门实战 pdf 和 实例代码.part1

    介绍了Android上可以使用的几种存储方式以及每种方式适应的场景,使得读者可以很快掌握数据存储操作。通过本章学习,将学会何时需要存储数据,采用哪种存储方式,以及如何实现存储。 第9章 我来“广播”你的“意图”...

    Google Android SDK开发范例大全(完整版)

    开始开发 Android 应用程序的最简捷的方式是下载 Android SDK 和 Eclipse IDE(参见 参考资料)。Android 开发可以在 Microsoft® Windows®、Mac OS X 或 Linux 上进行。 本文假设您使用的是 Eclipse IDE 和用于 ...

    Google Android开发入门实战 pdf 和 实例代码.part3

    介绍了Android上可以使用的几种存储方式以及每种方式适应的场景,使得读者可以很快掌握数据存储操作。通过本章学习,将学会何时需要存储数据,采用哪种存储方式,以及如何实现存储。 第9章 我来“广播”你的“意图”...

    Google Android开发入门实战 pdf 和 实例代码.part2

    介绍了Android上可以使用的几种存储方式以及每种方式适应的场景,使得读者可以很快掌握数据存储操作。通过本章学习,将学会何时需要存储数据,采用哪种存储方式,以及如何实现存储。 第9章 我来“广播”你的“意图”...

    driverBehavior:驱动程序数据收集Android应用程序,R预处理源代码和Java代码,用于评估几种机器学习算法-Android app source code

    AndroidStudioProjects文件夹包含用于收集传感器数据的Android应用程序; apm_R文件夹包含用于传感器数据预处理和图形生成的R代码。 apm文件夹包含Java代码,该代码使用Weka和LIBSVM对几种机器学习算法进行评估。 ...

    新版Android开发教程.rar

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

    云计算的典型应用.docx

    云存储是指通过网格技术、分布式文件系统或集群应用等功能,将网络中数量庞大且种类繁多的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问的功能,保证数据的安全性,并节约存储空间。...

    Android 实现永久保存数据的方法详解

    背景:在Android中按照数据保存的方式,可以分为如下几种Content Provider (用的SQLite实现),SQLite,SharedPreferences(用的XML实现),文件,网络等方式。今天在项目中,需要做一个永久保存的数据,保存到本地...

    星曦向荣的Android工具应用【ZH Tools】.zip

    数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用的存储形式包括关系型数据库、NoSQL数据库、JSON文件等。 遵守规则: 为避免对网站造成过大负担或触发反爬虫机制,爬虫...

    深入理解Android:卷I--详细书签版

     (1)Android应用开发工程师 . 对于Android应用开发工程师而言,本书中关于Binder,以及sp、wp、Handler和Looper等常用类的分析或许能帮助你迅速适应Android平台上的开发工作。  (2)Android系统开发工程师 ...

    android 面试2

    请介绍下Android的数据存储方式。  答:SharedPreferences键值对的存储  SQlite数据库存储  Files文件存储  NetWork网络存储 ContentProvider  7. 请介绍下ContentProvider是如何实现数据共享的。 答:...

    android 终极ROOT工具

    Root Tools是一款Android ROOT根权限的必备工具,实在是Android资深玩家定制系统和Android开发者修改程序的终极工具。Root Tools能够最大限 度的定制你的Android系统,你能够随意改变系统的字体和引导动画,而删除...

Global site tag (gtag.js) - Google Analytics