新浦京81707con > 注册购买 > 新葡亰下载第十六章,数据存储全方案

原标题:新葡亰下载第十六章,数据存储全方案

浏览次数:193 时间:2020-03-15

此外四个应用程序,其实轻易就是在不停地和数据打交道,大家聊QQ、看新闻、刷天涯论坛,所关心的都以中间的数据,没有数量的应用程序就改成了三个空壳子,对客户来讲未有此外实际用场。呢么那么些数据都是从何地来的呐?以往好些个的数码都是由顾客发生的,例如您发天涯论坛,商酌信息,其实都是在发出多少。

诚如在做一些面试题的时候,Android有两种多少存款和储蓄方案那些标题是陆陆续续遇上的。在我们实在行使中,任何两个应用程序说白了都以在不停的和数码接触,举例我们由此QQ,微信谈心都以二个数码传输的长河。又举例说咱们逛新闻,逛搜狐,刷Tmall等也都是几个多少显示的进度。说实在点不多,全部的选拔都是表面功夫。近年来超过61%数量都以由用户爆发的,发争论发交际圈的等等都是三个发生多少的长河。 因为大家知晓垃圾回笼机制,当程序关闭或其余原因招致数据被回收掉的时候,会某个数据被遗失,那么些是瞬间数码,比方,在输入框输入三个数字,发送八个字符串等,一旦大家尚无再要求的时候就能放任。可是有个别数据必要持久的保存不想被回笼掉,比如交际圈的动态和评价,博客园留言等。那就须要保持关键新的数目不舍弃。

长久化手艺提供了一种机制得以让数据在转手景观和永久状态之间张开转移

而我们近期章节所编纂的广大例证中也可能有用到精彩纷呈中的数据,比如3章一级时间部分在签到分界面输入账号和密码。这个多少都有二个协同点,及他们都以归于须臾间数量。那么如何是一下子数码啦?便是指那么数量存款和储蓄在内部存款和储蓄器当中,有非常的大可能率会因为程序关闭或任何原因变成内部存款和储蓄器被回笼而错过的数据。那对于部分大旨数据是纯属难以容忍的,哪个人都不期待团结刚发出去的网易,刷新一下就没了吧!那么怎么着技能保险一些基点数据不会甩掉啦?那就需求用到数码长久化了。

数据悠久化管理是将内部存款和储蓄器中的数额可以知道被保存在特定的仓库储存空间中,保险数据在前后相继关闭和极度意况下不会被放弃。Android 系统提供了5种办法来保存数据:1.文件存储2.SharePreference仓库储存3.数据仓库储存款和储蓄4.ContentProvider存款和储蓄5.网络存款和储蓄

Android 系统提供了 3 种艺术用于轻松地促成数据悠久化作用,即  文件存款和储蓄,SharePreference存款和储蓄 和 数据仓库储存款和储蓄。

6.1 漫长化技艺简单介绍

文本存款和储蓄是Android中最基本的一种多少存款和储蓄方法。它经过文件的艺术将数据不做其它管理的存款和储蓄进文件中,因而符合储存一些简单易行的公文数据可能二进制数据。当然亦不是不相符积存复杂的文书数据,只是须求定义一套自个儿的格式规范,方便之后将数据从文件中重复解析出来。

1.文书存款和储蓄

最中心的存款和储蓄格局,它不对存款和储蓄的剧情开展别的的格式化管理,全体数据都以维持原状地保存到文件个中的,由此比较契合用来存款和储蓄一些总结的文件数据或二进制数据。假使想利用文件存储的章程来保存一些相比复杂的文本数据,就要求定义一套自身的格式规范,那样就有益之后将数据从文件中再次解析出来。

数量持久化即是指将那多少个内部存款和储蓄器中的一弹指数量保存到存款和储蓄设备中,保险固然在小叔子大或计算机关机的意况下,那些数量如故不会丢弃。保存在内部存款和储蓄器中的数据是居于弹指时事态的,而保留在存储设备中的数据是处在长久状态的,长久化本事则提供了一种体制能够让多少在立刻状态和长久状态之间展开转账。

文件IO流的存取提供了FileOutputStram(卡塔尔(قطر‎和FileInputStream(卡塔尔国这四个主意来囤积和抽取文件中的数据。openFileOutput(卡塔尔这么些方法可以用于将数据存款和储蓄到钦点为文件中。openFileOutput(String name , int mode卡塔尔(قطر‎那几个办法第二个参数用于内定文件名,第贰个参数内定张开文件的格局。具体有:

1.1 将数据存款和储蓄到文件中

Context 类中提供了三个 openFileOutput()方法,能够用于将数据存款和储蓄到内定的公文中。此情势选择五个参数,第三个参数是文件名,在文件成立的时候利用的正是其一名号,注意这里钦点的文本名不可能包蕴路线,因为具备的公文皆以默许存款和储蓄到 /data/data/<package name>/files/ 目录下的。第三个参数是文本的操作形式,重要有两种格局可选,MODE_PRIVATE 和 MODE_APPEND 。个中前面叁个是暗中同意操作方式,表示当钦命类似文件名的时候,所写入的剧情会覆盖原著件中的内容,而后人表示只要文件已存在,就往文件里扩充内容,不设有就创造新文件。

持久化技艺被布满应用于种种程序设计的圈子个中,而那本书根本研究的自然是Android中多少长久化手艺。Android系统中举足轻重提供了3种方式用于轻便的达成数量持久化功用,及文本存款和储蓄ShaerdPreference存储以及数据仓库储存储。当然,出了那3中方法之外,你还足以将数据库保存在SD存款和储蓄卡中,但是使用文件、SharedPreference或数据库会相对更简便易行一些,并且不起将数据保存在SDXC卡中会尤其地安全。

  1. MODE_PENVISIONIVATE:为暗中同意操作方式,代表该文件是私有数量,只可以被应用本人访谈,在该形式下,写入的原委会覆盖原来的著工件的原委,假使想把新写入的内容充实到原来的书文件中。能够动用Context. MODE_APPEND 。
  2. MODE_应用软件END:形式会检讨文件是或不是存在,存在就往文件扩展内容,不然就制造新文件。
  3. MODE_WORLD_READABLE:表示近年来文件能够被别的应用读取;
  4. MODE_WORLD_W奥迪Q5ITEABLE:表示方今文件能够被此外应用写入。(后边二种在Android4.2版本中被抛弃了)具体落到实处将数据存款和储蓄的步调:1.率先新建二个layout文件activity_file_save.xml.那几个页面就五个控件,二个输入框EditText,一个保存开关。

1.2 从文件中读取数据

Context 类 提供了二个 openFileInput(卡塔尔方法,用于从文件中读取数据。只需求摄取三个参数,即要读取的文本名,然后系统会自动到 目录下去加载这些文件,并赶回二个FileInputStream 对象,获得了那几个目的之后再经过 Java流 的秘籍就足以将数据读收取来了。

那么上边作者就讲对那3中数据持久化的方法挨个实行详细的批注。

2.SharedPreferences 存储

不相同于文件的囤积格局,SharedPreferences 是接收键值对的措施来囤积数据的。也正是说,当保存一条数据时,供给给那条数据提供一个相应的键,这样在读取数据的时候就足以经过那些键把相应的值抽取来。而且SharedPreferences 还扶植二种区别的数据类型存款和储蓄,借使存款和储蓄的数据类型是整型,那么读抽取来的数码也是整型的;如若是字符串,那么读抽出来的数额仍为字符串。

6.2 文件存款和储蓄

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:andro android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <EditText android: android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="写点什么呗"/> <Button android: android:layout_width="match_parent" android:layout_height="50dp" android:text="保存数据"/></LinearLayout>

2.1 将数据存款和储蓄到 SharedPreferences 中

利用 SharedPreferences 来存款和储蓄数据,首先要取得到 SharedPreferences 对象。Android 提供了 3 种方法用于获取 SharedPreferences 对象。

新葡亰下载 1

2.2 从 SharedPreferences 中读取数据

文本存款和储蓄是Android中最中央的一种多少存款和储蓄情势,她不对存储的源委张开任何的格式管理,全数的多寡都以维持原状的保存到文件中,因此他比较相符积累一些简约的文本数据或二进制数据。万一你想选拔文件存款和储蓄的方法来保存一些相比复杂的文件数据,就酷炫定义一套自身的格式标准,那样能够实惠之后数据从文件中再次解析出来。

2.新建多少个Activity,管理保存数据的逻辑。通过调用openFileOutPut(卡塔尔的格局重临三个FileOutputStream对象。获得这几个指标之后就能够利用Java保存文件的法子将数据写入到文件中。这里生成三个data文件保留文件中。代码如下:

3. SQLite 数据仓库储存款和储蓄

轻量级的关系型数据库,它的演算速度非常快,占用能源少,日常只需几百 KB 的内部存款和储蓄器就足足了,因此极其符合在移动设备上使用。

SQLite帮忙标准的 SQL 语法,还依照了数据库的 ACID 事务。

那正是说首先大家就来看一看,Android中是什么样通过文件保留数据的。

 private void save(String inputtext) { FileOutputStream outputStream = null; BufferedWriter bufferedWriter = null; try { outputStream = openFileOutput("data", Context.MODE_PRIVATE); bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream)); bufferedWriter.write(inputtext); Toast.makeText(FileSaveActivity.this, "保存数据成功" inputtext, Toast.LENGTH_SHORT).show(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if(bufferedWriter!=null){ try { bufferedWriter.close(); } catch (IOException e) { e.printStackTrace(); } } } }

3.1 创造数据库

Android 为了让大家更加的方便地管理数据库,特意提供了三个 SQLiteOpenHelper 帮忙类,依附这么些类就可以特别轻巧地对数据库创设和进级换代。

SQLiteOpenHelper 是多个抽象类,使用它就供给成立叁个要好的扶助类去继续它。SQLiteOpenHelper 有三个抽象方法,分别是 onCreate(卡塔尔 和 onUpgrade(卡塔尔国,大家需在团结的救助类里重写这七个方式,然后分别在此多个方法中去完毕创立、晋级数据库的逻辑。

新葡亰下载 2

新葡亰下载 3

integer  整型      real 浮点型      text 文本类型      blob 二进制类型

第多少个参数是 Context,第二个是数额库名,第三个是回到叁个自定义的 Cursor,平常是 null ,第多少个是眼前数据库的版本号,可用于对数据库举办进步操作。

以上


写在结尾:

“若不收取时间,来成立本身想要的生存,你最后将不能不成本大量的光阴,来搪塞本人不想要的生活。”

怎么感觉温馨每日的主见都是忽悠的了,明明已经前几天想好了的啊,那是认识层面包车型客车标题呢,是否因为本身接触的事物太少了,所以每当接触新的东西都会有着改换~

http——超文本传输公约财富

https——用金昌套接字层传送的超文本传输合同

ftp——文件传输协议

mailto——电子邮件地址

ldap——轻型目录访谈合同搜索

file——当地Computer或网络分享的文本

news——Usenet新闻组

gopher——Gopher协议

telnet——Telnet协议

6.2.1 将数据存款和储蓄到文件中

3.运营代码,在模拟器查看保存的数码。点击Android Studio 导航栏的Tools->Android->Android Device Monitor -> File Explorer,在那找到data/data/com.demo.filesavedemo/files/目录 查看模拟器的多少。

Context类中提供了叁个openFileOutput()艺术,可以用来将数据存款和储蓄到钦赐文件中。那几个方法选取四个参数,第一个参数是文本名,在文件创立的时候利用的正是二个称号注意这里钦点的文本名不得以包蕴路线,因为具有的公文都以私下认可存款和储蓄到/data/data/<package name>/files/目录下的。第一个参数时文件的操作情势,首要有三种方式可选,MODE_PRIVATEMODE_APPEND。其中MODE_P哈弗IVATE是暗许的操作格局,表示当钦定相通文件名的时候,所写入的内容将会覆盖源文件中的内容,而MODE_应用程式END则表示一旦该公文已经存在,就往文件之中追加内容,一纸空文就创办理文件件。其实文件的操作情势本来还有别的二种:MODE_WORLD_READABLEhe MODE_MODE_W安德拉ITEABLE,这两种格局表示同意任何的应用程序对大家前后相继中的文件实行读写操作,然而出于这三种形式过于危殆,十分轻便引起应用的安全性漏洞,已在Android 4.2 版本中被废弃。

新葡亰下载 4Android 工具列表

openFileOutput()方法再次来到的是二个FileOutputStream对象,得到了这些独享之后就足以行使Java留的艺术陈述写入到文件中了。以下是一段轻巧的代码示例,体现了怎么样将一段文本内容保留到文件中:

Android7.0的模拟器有一些小bug,采取6.0的好了。

那边只是在布局里面参与了一个EditText,用于输入文本内容。其实现在您就足以运作以下顺序了,分界面上一定会有一个文件输入框。然后在文书输入框中随便输入点什么内容,再按下Back键,那是输入的始末坑定已经吐弃了,因为他只是一眨眼数据,在运动被灭绝后就能够被回笼,而这里大家要做的,正是在数据被回笼以前,将它存储到文件在那之中。纠正MainActivity中的代码,如下所示:

新葡亰下载 5生成data文件

新葡亰下载 6新葡亰下载 7

点击左侧这么些开关,导出文件到Computer上:

能够见到,首先大家在onCreat()方法中得到了EditText的实例,然后重写了onDestry()方法,那样就可以保险在活动销毁在此之前一定会调用那么些点子。在onDestry方法中大家获取了EditText()方法中的代码和在此以前的是基本相通,这里就不做表达了。现在重国民党的新生活运动行以下顺序,并在艾德itText中输入一些剧情,如图6.1所示。

新葡亰下载 8导出导入按键

下一场按下Back键关闭程序,当时我们输入的剧情就曾经保存到文件中了。那么怎么样能力证实使数码确实已经成功了哇?大家得以依附Android Device Monitor工具来查看一下。点击as导航栏中的Tools--》Android,会见到如图6.2所示的工具列表。

输入qwert 保存,输入结果:

新葡亰下载 9

新葡亰下载 10输出结果

点击android Device Monitor就足以展开Android Device Monitor工具了,然后步向File Explorer标签页,在那间找到/data/data/com.example.filepersistencetest/files/目录,能够看来变化了一个data文件,如图6.3所示:

那就印证了 输入的EditText的内容被成功保存到文件中了。

下一场点击图6.4中左侧包车型大巴按键能够将那几个文件导出到Computer上

恍如于数据存款和储蓄到文件中,Context类还提供了二个openFileInput(卡塔尔(قطر‎的法子,用于从文件中读取数据这一个对相比openFileOutput(卡塔尔(قطر‎简单一些,只要读取文件名那一个参数就足以了。系统会自行读取data/data/com.demo.filesavedemo/files/目录这一个文件,并回到一个FileInputStream对象。获得那么些目标之后就能够运用Java读取文件数量的章程读取文件中的数据

新葡亰下载 11

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

应用记事本展开那个文件,里面包车型大巴情节如图6.5所示。

提起底将文件存款和储蓄输入和出口归并完整代码:1.activity_file_save.xml

那样就表达了,在Edite中输入的剧情真的应景陈宫保存到了文本中了。可是只是成功汇报保存下去还远远不够,大家好内需想方法在下一次起步程序的时候让那些多少可以见到过来到EditText中,由此接下去我们将要上学意下如何从文件中读取数据。

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:andro android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <EditText android: android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="写点什么呗"/> <Button android: android:layout_width="match_parent" android:layout_height="50dp" android:text="保存数据"/> <Button android: android:layout_width="match_parent" android:layout_height="50dp" android:text="读取数据"/> <TextView android: android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="10dp" android:textSize="15sp" /></LinearLayout>

6.2.2 从文件中读取数据

2.FileSaveActivity.java

相似于将数据存款和储蓄到文件中,Context类中还提供了多个openFileInput()方法,用于从文件中读取数据。这么些点子要比openFileOutput轻易一些,他只选拔三个参数,纪要读取的文件名,然后系统会活动到data/data/<package name>/files/目录下来加载那个文件,并然会二个FileInputStream对象,获得了那么些目的之后再经过java流的艺术就能够将数据读收取来了。

ublic class FileSaveActivity extends AppCompatActivity { private static final String TAG = "FileSaveActivity"; private EditText editText; private Button btn_load_data,btn_save_data; private TextView tv_txt_load_data; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_file_save); editText =  findViewById(R.id.et_txt_content); tv_txt_load_data=  findViewById(R.id.tv_txt_load_data); btn_save_data=  findViewById(R.id.btn_save_data); btn_load_data=  findViewById(R.id.btn_load_data); btn_save_data.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String inputtext=editText.getText().toString(); save(inputtext); } }); btn_load_data.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String inputText=load(); Log.e(TAG, "onClick: " inputText ); if(!TextUtils.isEmpty(inputText)){ tv_txt_load_data.setText(inputText); } Toast.makeText(FileSaveActivity.this, "读取数据成功=" inputText, Toast.LENGTH_SHORT).show; } //保存数据到文件中 private void save(String inputtext) { FileOutputStream outputStream = null; BufferedWriter bufferedWriter = null; try { outputStream = openFileOutput("data", Context.MODE_PRIVATE); bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream)); bufferedWriter.write(inputtext); Toast.makeText(FileSaveActivity.this, "保存数据成功" inputtext, Toast.LENGTH_SHORT).show(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if(bufferedWriter!=null){ try { bufferedWriter.close(); } catch (IOException e) { e.printStackTrace(); } } } } //读取文件中的数据 private String load(){ FileInputStream inputStream=null; BufferedReader bufferedReader=null; StringBuilder content=new StringBuilder(); try { inputStream = openFileInput; bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); String line=" "; try { while ((line=bufferedReader.readLine{ content.append; } } catch (IOException e) { e.printStackTrace(); } } catch (FileNotFoundException e) { e.printStackTrace(); }finally { if(bufferedReader!=null){ try { bufferedReader.close(); } catch (IOException e) { e.printStackTrace(); } } } return content.toString(); }}

以下是一段轻松的代码示例,体现了什么从文件中读取文本数据:

所用的为主及本领正是openFileInput(卡塔尔和openFileOutput(卡塔尔国方法,之后就是Java的各样读写流来进行读写操作。不过这种存储方式不合乎保存复杂的文书数据。

新葡亰下载 12

与公事存款和储蓄区别的是,SharePreferences存款和储蓄是透过键值对来扩充仓库储存,在蕴藏数据的时候,必要给多少提供相应的键,然后通过键来寻觅相对应的值。何况SharePreferences支持各类不一样的数据类型来开展仓库储存,存取的经过中,数据的类型不会生出转移。

在此段代码中,首先通过openFileInput()方法赢获得了二个FileInputStream对象,然后依附它更创设出了InputStreamReader对象,接着在使用InputStreamReader营造出五个BufferedReader对象,那样我们就足以经过Bufferreader进行一行行地读取,把文件中享有的文本内容全方位读抽出来,并寄存在叁个StringBuilder对象中,最终将读取到的剧情返回就足以了。

贯彻SharedPreferences存款和储蓄的手续如下: 一、根据Context获取SharedPreferences对象 二、利用edit(卡塔尔(قطر‎方法获得Editor对象。 三、通过Editor对象存款和储蓄key-value键值对数据。 四、通过commit(卡塔尔方法提交数据。示例代码:

叩问了从文件中读取数据的秘技,那么大家就来三番两次周到上一小节中的例子,是的重复开动程序是EditText中鞥狗保留大家上次输入的剧情。修正MainActivity中的代码,如下所示:

 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_file_share_preference); Button button=  findViewById(R.id.btn_share_save); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { SharedPreferences.Editor editor=getSharedPreferences("data",MODE_PRIVATE).edit(); editor.putString("name","小强"); editor.putInt; editor.putBoolean("married",false); editor.apply(); Toast.makeText(FileSharePreferenceActivity.this, "保存数据成功", Toast.LENGTH_SHORT).show; }

新葡亰下载 13新葡亰下载 14

安装点击按键,保存数据到data/data/com.demo.filesavedemo/shared_prefs/目录。查看的主意和地点的等同。生成了三个xml的文本

能够看见,这里的思绪极度轻便,在onCreat()方法中调用load()方法来读取文件中存款和储蓄的文本内容,若是读到的内容不为null,就调用EditText的setText()方法将内容天聪到EditText里,并调用setSelection()方法将输入光标移动到文本的结尾地方以便于继续输入,然后弹出一句还原成功的唤醒。load()方法中的细节大家在头里已经讲过,这里就不在追溯了。

新葡亰下载 15SharedPreferences存储

留意,上述代码在对字符串非空判定的时候利用了TextUtils.isEmpty()方法,那是一个十三分好用的措施,他能够一遍性实行二种空值剖断。当传入的字符串等于null可能等于空字符串的时候,那几个方法都会重回true,进而使得大家没有必要先单独推断那三种空值在利用逻辑运算符连接起来了。

此处补充一下Android中首要提供了3种形式去获取SharedPreferences对象1.Context类中的getSharedPreferences(卡塔尔方法。那几个主意采取八个参数,第3个参数是内定寄存SharedPreferences文件的称呼。假设钦赐的文本不存在,则会创立叁个,SharedPreferences文件的存放目录为/data/data/<包名>/shared_prefs/目录,第二个参数用于钦赐操作方式。最近只有MODE_P讴歌ZDXIVATE这一种格局可选,它是暗中同意的操作方式,和一向传入数字0是大同小异的功用,表示除非当前的应用程序才方可对这几个SharedPreferences文件举办仓库储存。别的的操作形式均已放弃。MODE_WORLD_READABLE和MODE_WORLD_WENVISIONITEABLE,在Android4.2版本被放弃了,MODE_MULTI_PROCESS是在6.0被废弃。2.Activity类中的getPreference()方法。那一个点子与getSharedPreferences(State of Qatar方法很像,只是它只选用贰个操作方式参数,使用那些方法会自动将日前运动的类名作为SharedPreferences的文本名。3.PreferenceManager类中的getDefaultSharedPreferences()方法。那是个静态方法,它选取二个Context参数,自动使用当前包名作为前缀来明明SharedPreferences文件。获得SharedPreferences对象之后,就足以在这里此前积存数据了。

当今再也运转一下程序,刚才保存的Context字符串鲜明会被填充到EditText中,然后编写一点此外的剧情,比如在Edite中输入Hello,接着按下Back键退出程序,再重新开动程序,那是刚刚输入的剧情不会舍弃,而是公园道了艾德itText中,如图6.6所示。

SharedPreferences的囤积数据非常的简短,读取数据其实更是的简易。SharedPreferences提供了一连串的get(State of Qatar方法来对应存款和储蓄的put(卡塔尔方法。但是与积累分裂的是,提取的方法有四个参数,第2个参数是呼应的字符类型,第三个是暗许值,当传入的键找不到相应的值的时候会以怎么样的暗中同意值举行再次来到。1.校勘activity_file_share_preference.xml文件

那样我们就已经把文件存款和储蓄方面包车型地铁学问学习完了,其实所用到的宗旨工夫正是Context类中提供的openFileInput()和openFileOutput()方法,之后正是接纳java的各类流进行读写操作。

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:andro android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <Button android: android:layout_width="match_parent" android:layout_height="50dp" android:text="SharePreference存储"/> <Button android: android:layout_width="match_parent" android:layout_height="50dp" android:text="SharePreference读取"/></LinearLayout>

可是正如小编前面所说,文件存储的措施并切合用于保存一些比较复杂的公文数据,因而,下边作者么就来学习一下Android中另一种多少漫长化的不二等秘书籍,他比文件存款和储蓄越发简明易用,而且能够很便利的对某一点名的数目开展读写操作。

2.修改FileSharePreferenceActivity.java文件

6.3 SharePreferences 存储

public class FileSharePreferenceActivity extends AppCompatActivity { private static final String TAG = "FileSharePreferenceActi"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_file_share_preference); Button button=  findViewById(R.id.btn_share_save); Button button2=  findViewById(R.id.btn_share_load); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { saveDate; button2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { loadDate; } public void saveDate(){ SharedPreferences.Editor editor=getSharedPreferences("data",MODE_PRIVATE).edit(); editor.putString("name","小强"); editor.putInt; editor.putBoolean("married",false); editor.apply(); Toast.makeText(FileSharePreferenceActivity.this, "保存数据成功", Toast.LENGTH_SHORT).show(); } public void loadDate(){ SharedPreferences spf=getSharedPreferences("data",MODE_PRIVATE); String name= spf.getString("name","");//字符串默认为空 boolean married= spf.getBoolean("married",false); int age= spf.getInt; Log.i(TAG, "loadDate: name=" name); Log.i(TAG, "loadDate: married=" married); Log.i(TAG, "loadDate: age=" age); }}

差异于文件的积存形式,SharedPreferences是采取键值对的不二等秘书诀来存款和储蓄数据的。也正是说,当保存一条数据的时候,需求给那条数据提供一个应和的键,那样在读取数据的时候就可以透过这么些键把相应的值抽出来。並且SharedPreferences还接济三种不相同的数据类型存款和储蓄,假如存款和储蓄的数据类型是整形,那么读抽出来的数码也是整形的;如果存款和储蓄的数额是八个字符串,那么读收取来的多少依旧是字符串。

先将数据存款和储蓄到shared_prefs目录下的文本,再将文件里的多寡读收取来

6.3.1 将数据存款和储蓄到SharedPreferences 中

新葡亰下载 16SharedPreferences读取数据

要想行使SharedPreferences来囤积数据,首先供给将收获到SharedPreferences对象。Android中器重提供了3种方法用于获取SharedPreferences对象。

事前在讲ListView的时候讲过了数据库存款和储蓄。Android 对数据库的支持很好,自个儿就扶植SQLite 这种轻量级的数据库,它的演算速度快,占用能源少,平日几百KB的内部存款和储蓄器就够了,而且帮忙规范的SQL语法,听从数据库的ACID事务(是Atomic、Consistency、Isolation和Durability的Lithuania语缩写)。相相比相同的数据库上手轻易。 在蕴藏一些大约的数码和键值对的开上下班时间候,可能会用上SharedPreferences存款和储蓄。不过急需仓库储存大批量的复杂性的关系型数据的时候,SharedPreferences明显无法知足必要,那时候就供给SQLite数据库的存款和储蓄。数据仓库储存款和储蓄的机要操作:创设数据库,升级数据库,增,删,查,改操作。

本文由新浦京81707con发布于注册购买,转载请注明出处:新葡亰下载第十六章,数据存储全方案

关键词: 新浦京81707con 方案 数据库 详解 持久

上一篇:安卓组件化应用的6,Android路由框架Router分析

下一篇:没有了