• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > Android入门(九)文件存储与SharedPreferences存储,

Android入门(九)文件存储与SharedPreferences存储,

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了sharedpreferences,getsharedpreferences,xsharedpreferences,sharedpreferences sp,android 文件存储等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

Android入门(九)文件存储与SharedPreferences存储,


原文链接:http://www.orlion.ga/578/

Android系统中主要提供了三种方式用于简单地实现数据持久化功能,即文件存储、SharedPreference存储以及数据库存储。当然,除了这三种方式之外,你还可以将数据保存在手机的 SD卡中,不过使用文件、SharedPreference或数据库来保存数据会相

对更简单一些,而且比起将数据保存在 SD卡中会更加的安全

一、文件存储

    1、将数据存储到文件中

    Context类中提供了一个 openFileOutput ()方法,可以用于将数据存储到指定的文件中。这个方法接收两个参数,第一个参数是文件名,在文件创建的时候使用的就是这个名称,注意这里指定的文件名不可以包含路径,因为所有的文件都是默认存储到/data/data/<packagename>/files/目录下的。第二个参数是文件的操作模式,主要有两种模式可选,MODE_PRIVATE和MODE_APPEND。其中 MODE_PRIVATE是默认的操作模式,表示当指定同样文件名的时候,所写入的内容将会覆盖原文件中的内容,而 MODE_APPEND则表示如果该文件已存在就往文件里面追加内容,不存在就创建新文件。其实文件的操作模式本来还有另外两种,MODE_WORLD_READABLE和 MODE_WORLD_WRITEABLE,这两种模式表示允许其他的应用程序对我们程序中的文件进行读写操作, 不过由于这两种模式过于危险,很容易引起应用的安全性漏洞,现已在 Android 4.2版本中被废弃

    openFileOutput ()方法返回的是一个 FileOutputStream对象,得到了这个对象之后就可以使用 Java流的方式将数据写入到文件中了。如下是代码示例:

public void save() {
    String data = "Data to save";
    FileOutputStream out = null;
    BufferedWriter writer = null;
    try {
        out = openFileOutput("data", Context.MODE_PRIVATE);
        writer = new BufferedWriter(new OutputStreamWriter(out));
        writer.write(data);
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        try {
            if (writer != null) {
                writer.close();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

    2、从文件中读取数据

    Context类还提供了一个openFileInput()方法用于从文件中读取数据。这个方法要比openFileOutput()简单一些,它只接收一个参数,即要读取的文件名,然后系统会自动到/data/data/<package name>/files/目录下去加载这个文件,并返回一个FileInputStream对象。

    代码示例:

public String load() {
    FileInputStream in = null;
    BufferedReader reader = null;
    StringBuilder content = new StringBuilder();
    try {
        in = openFileInput("data");
        reader = new BufferedReader(new InputStreamReader(in));
        String line = "";
        while ((line = reader.readLine()) != null) {
            content.append(line);
        }
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        if (reader != null) {
            try {
                reader.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    return content.toString();
}

 

二、SharedPreferences存储

    SharedPreferences是使用键值对的方式来存储数据的,SharedPreferences还支持多种不同的数据类型存储,如果存储的数据类型是整型,那么读取出来的数据也是整型的,存储的数据是一个字符串,读取出来的数据仍然是字符串。

    1、将数据存储到SharedPreferences中

    要想使用SharedPreferences来存储数据,首先要获取到SharedPreferences对象。Android主要提供了三种方式获取SharedPreferences对象

    1. Context类中的getSharedPreferences()方法

      此方法接收两个参数,第一参数用于指定SharedPreferences文件的名称,如果不存在则创建一个,SharedPreferences文件都是存放在/data/data/<packagename>/shared_prefs目录下。第二个参数用于指定操作模式,主要有两种模式,MODE_PRIVATE和MODE_MULTI_PROCESS。MODE_PRIVATE是默认的操作模式,和直接传入)效果是相同的,表示只有当前的应用程序才可以对这个SharedPreferences文件进行读写。MODE_MULTI_PROCESS则一般是用于会有多个进程中对同一个SharedPreferences文件进行读写的情况。MODE_WORLD_READABLE和 MODE_WORLD_WRITEABLE这两种模式已在 Android 4.2版本中被废弃

    2. Activity类中的getPreferences()方法

      这个方法和 Context中的 getSharedPreferences()方法很相似,不过它只接收一个操作模式参数,因为使用这个方法时会自动将当前活动的类名作为 SharedPreferences的文件名。

    3. PreferenceManager类中的getDefaultSharedPreferences()方法

      这是一个静态方法,它接收一个Context参数,并自动使用当前应用程序的包名作为前缀来命名SharedPreferences文件

 

    得到了SharedPreferences对象后,就可以开始向SharedPreferences文件中存储数据了,主要有三步:

    1. 调用SharedPreferences对象的edit()方法来获取一个SharedPreferences.Editor对象

    2. 向SharedPreferences.Editor对象中添加数据,比如添加一个布尔类型的数据就使用putBoolean()方法,添加字符串就使用putString()。

    3. 调用commint()方法将添加的数据提交,从而完成数据存储操作。

 

    2、从SharedPreferences中读取数据

    SharedPreferences对象中提供了一系列的get方法用于对存储的数据进行读取, 每种get方法都对应了SharedPreferences.

Editor中的一种 put方法,比如读取一个布尔型数据就使用 getBoolean()方法,读取一个字符串就使用 getString()方法。这些 get方法都接收两个参数,第一个参数是键,传入存储数据时使用的键就可以得到相应的值了,第二个参数是默认值,即表示当传入的键找不到对应的值时,会以什么样的默认值进行返回。例:

                       &nbs



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • SharedPreferences详解,sharedpreferences
  • 跨进程SharedPreferences异常。,sharedpreferences
  • Android之SharedPreferences数据存储,sharedpreferences
  • Android SharedPreferences存储,sharedpreferences
  • Android软件开发之SharedPreferences,sharedpreferences
  • Android数据存储方式--SharedPreferences,sharedpreferences
  • Android入门(九)文件存储与SharedPreferences存储,
  • android开发之路11(用SharedPreferences存储数据),sharedpreferences

相关文章

  • 2017-05-26Linux动态链接库加载失败一例
  • 2017-05-26android:获取手机号码和姓名实现通讯录
  • 2017-05-26[android] 手机卫士保存密码时进行md5加密,androidmd5
  • 2017-05-26解决 在Android开发上使用KSOAP2上传大图片到服务器经常报错的问题,
  • 2017-05-26Android Call(打电话)的基本知识详解,androidcall
  • 2017-05-26lua中使用luasocket通信,写了一个简单的事件库
  • 2017-05-26Android-将RGB彩色图转换为灰度图,
  • 2017-05-26在Kotlin上怎样用Mockito2 mock final 类(KAD 23),kotlinmockito2
  • 2017-05-222.5.4 AutoCompleteTextView(自动完成文本框)的基本使用
  • 2017-05-26Android Studio创建/打开项目时一直处于Building“project name”Gradle project info的解决办法,androidgradle

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Activity生命周期,activity生命周期图
    • Android自定义控件
    • Android 系统常用的权限,android权限
    • 使用WakeLock使Android应用程序保持后台唤醒,wakelockandroid
    • Android中的沉浸式状态栏效果,android沉浸状态栏
    • achartengine/MPAndroidChart——图表实现之Java
    • 安卓开源项目周报0222,安卓开源项目0222
    • [Android] android.util.Log,android.util.logjar
    • 界面底部Tab实现,界面Tab实现
    • 【原】Android热更新开源项目Tinker源码解析系列之三:so热更新,androidtinker

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有