0
点赞
收藏
分享

微信扫一扫

第七章:安卓开发之数据存储

boomwu 2022-03-19 阅读 109
androidjava

数据存储简介

Android提供了四种数据存储方式:

  • 使用Preference存储数据:Preference采用“键-值”对方式组织和管理数据,其数据存储在XML文件中。相对于其他方式,它是一个轻量级的存储机制。该方式实现比较简单,适合简单数据的存储。

  • 使用File存储数据:文件存储的特点介于Preference与SQLite之间。从存储量来看,文件存储是一个“重量级”存储机制,比Preference方式更适合存储较大的数据;从存储结构化来看,这种方式不同于SQLite,不适合结构化的数据存储。

  • 使用SQLite存储数据:SQLite使用数据库作为存储方式,它是一个重量级的存储机制,适合大数据量的数据存储,通过这种方式能够很容易的对数据进行增加、插入、删除、更新等操作。相比Preference和文件存储,使用SQLite较为复杂。

  • ContentProvider:数据共享,四大组建之一。

存储的位置

image.png

SharedPreferences

image.png

image.png

Preference提供了一种轻量级的数据存储方式,主要应用在数据量比较少的情况下。它以“key-value”方式将数据保存在一个XML文件中。

SharedPreferences常用的方法 :

image.png
image.png

第一,获取SharedPreferences

第二,调用SharedPreferences类的edit()方法,获取SharedPreferences.Editor对象;

第三,调用一个SharedPreferences.Editor对象的putXXX()的方法获取数据;

第四,使用commit()方法提交数据。

commit 同步提交,直接提交到磁盘
apply 异步提交,先提交到内存,在写入磁盘

第一,获取SharedPreferences对象;

第二,调用一个SharedPreferences对象的gettXXX()的方法获取数据;

image.png

拼接

image.png

image.png

####File存储

文件存储方式不受类型限制,可以将一些数据直接以文件的形式保存在设备中,如文本文件、PDF、音频、图片等。如果需要存储复杂数据,可以使用文件进行存储。Android提供了读写文件的方法。

通过Context.openFileInput()方法可以获取标准的文件输入流(FileInputStream),读取设备上的文件;通过Context.openFileOuput()方法可以获取标准的文件输出流(FileOutputStream)。

          try {
                    //1、获取文件输出流,操作模式为私有
                    FileOutputStream fileOutputStream = openFileOutput("myfile.txt", MODE_PRIVATE);
                    //2、往文件里写内容
                    fileOutputStream.write(edit.getText().toString().getBytes());
                    //3、关闭输出流
                    fileOutputStream.close();
                    Log.d("TAG","存结束了");
                } catch (IOException e) {
                    e.printStackTrace();
                }

取:第一种
try {
                    //1、获取文件输入流
                    FileInputStream fileInputStream = openFileInput("myfile.txt");
                    byte[] bytes = new byte[fileInputStream.available()];//2、创建字节数组来接收数据                         	        fileInputStream.read(bytes);  //3、读
                    fileInputStream.close(); //4、关闭流
                    //把读出来的数据显示出来
                    gettxt.setText(new String(bytes));
                    Log.d("TAG","取结束了");
                } catch (IOException e) {
                    e.printStackTrace();
                }
取:第二种
     try {
                FileInputStream inputStream = openFileInput(FILE_NAME);  //1、获取文件输入流
                byte[] bytes = new byte[1024];//2、创建字节数组来接收数据
                int length = 0;
                StringBuffer stringBuffer = new StringBuffer();
                while ((length = inputStream.read(bytes)) != -1){
                    stringBuffer.append(new String(bytes,0,length));
                }
                inputStream.close();               
           } catch (IOException e) {
                e.printStackTrace();
            }
举报

相关推荐

第七章

第七章:事务

第七章:集合

第七章 类

第七章 数组

第七章 集合

第七章总结

0 条评论