本章目录

  • 一、数据存储方式
  • 二、文件存储
    • 1、将数据存入文件中
      • 1.1、内部存储
      • 1.2、外部存储
    • 2、从文件中读取数据
      • 2.1、读取内部存储中的文件的数据
      • 2.2、读取外部存储中的文件数据
    • 3、申请SD卡写文件的权限
      • 3.1、静态申请权限
      • 3.2、动态申请权限
      • 3.3、动态申请SD卡的写权限
  • 三、SharedPreferences存储
    • 1、将数据存入SharedPreferences
    • 2、读取和删除SharedPreferences中的数据
  • 四、SQLite数据库存储
    • 1、SQLite数据库简介
    • 2、SQLite数据库的创建
    • 3、数据库的基本操作
      • 3.1、添加数据
      • 3.2、删除数据
      • 3.3、修改数据
      • 3.4、查询数据
      • 3.5、使用sql语句进行数据库操作
    • 4、SQLite数据库中的事务
  • 五、本章小结

一、数据存储方式

二、文件存储

1、将数据存入文件中

1.1、内部存储

FileOutputStream fos = openFileOutput(String name, int mode);
//参数是文件名和文件的操作模式
//打开应用程序中对应的输出流,将数据存储到指定的文件中
FileInputStream fis = openFileInput(String name);
//打开应用程序对应的输入流,读取指定文件中的数据
String fileName = "data.txt";                       // 文件名称
String content = "helloworld";                     // 保存数据
FileOutputStream fos = openFileOutput(fileName, MODE_PRIVATE);
fos.write(content.getBytes());                    //将数据写入文件中
fos.close();                                      //关闭输出流

1.2、外部存储

String state = Environment.getExternalStorageState();  //获取外部设备的状态
if (state.equals(Environment.MEDIA_MOUNTED)) {   //判断外部设备是否可用          File SDPath = Environment.getExternalStorageDirectory(); //获取SD卡目录File file = new File(SDPath, "data.txt");String data = "HelloWorld";FileOutputStream fos = new FileOutputStream(file);fos.write(data.getBytes());fos.close();
}

2、从文件中读取数据

2.1、读取内部存储中的文件的数据

String content = "";FileInputStream fis = null;fis = openFileInput("data.txt");    //获得文件输入流对象byte[] buffer = new byte[fis.available()];//创建缓冲区,并获取文件长度fis.read(buffer);     //将文件内容读取到buffer缓冲区content = new String(buffer);     //转换成字符串fis.close();                    //关闭输入流

2.2、读取外部存储中的文件数据

String state = Environment.getExternalStorageState();
if (state.equals(Environment.MEDIA_MOUNTED)) {File SDPath = Environment.getExternalStorageDirectory(); //获取SD卡路径File file = new File(SDPath, "data.txt");           //创建文件对象FileInputStream fis = null;BufferedReader br = null;fis = new FileInputStream(file);         //创建文件输入流对象//创建字符输入缓冲流的对象br = new BufferedReader(new InputStreamReader(fis));String data = br.readLine();              //读取数据br.close();                               //关闭字符输入缓冲流                                                 fis.close();                              //关闭输入流
}

3、申请SD卡写文件的权限

3.1、静态申请权限

3.2、动态申请权限

3.3、动态申请SD卡的写权限

<uses-permission    android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
ActivityCompat.requestPermissions(MainActivity.this, //动态申请权限的方法,参数是上下文
new String[]{"android.permission.WRITE_EXTERNAL_STORAGE"}, 1);
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions,
int[] grantResults) {//申请权限的回调方法
//第一个参数requestCode为请求码
//第二个参数permissions为请求的权限
//第三个参数grantResults为用户授予权限的结果,当用户授予权限时,该数组中对应的值为PackageManager.PERMISSION_GRANTEDsuper.onRequestPermissionsResult(requestCode, permissions, grantResults);
}

三、SharedPreferences存储

1、将数据存入SharedPreferences

2、读取和删除SharedPreferences中的数据


四、SQLite数据库存储

1、SQLite数据库简介

2、SQLite数据库的创建

3、数据库的基本操作

3.1、添加数据

3.2、删除数据

3.3、修改数据

3.4、查询数据

3.5、使用sql语句进行数据库操作

4、SQLite数据库中的事务


五、本章小结

本章主要讲解了Android中的数据存储,首先介绍了Android中常见的数据存储方式,然后详细地讲解了文件存储、SharedPreferences存储以及SQLite数据库存储,数据存储是Android开发中非常重要的内容,一般在应用程序中会经常涉及到数据存储的知识,因此要求初学者必须熟练掌握本章知识。

太在乎别人的眼光和评价,只会让自己做事放不开手脚,犹豫不决,失去自我,失去个性,丢失自我的价值。坚持自己所选择的,相信自己所坚持的,才是属于你自己的正确道路。别人怎么看你并不重要,重要的是你要做你自己,去做自己认为正确的事。

Android移动应用基础教程【数据存储】相关推荐

  1. android界面数据存储,Android应用开发基础之数据存储和界面展现(二)

    Android应用开发基础之数据存储和界面展现(二) 常见布局 相对布局 RelativeLayout 组件默认左对齐.顶部对齐 设置组件在指定组件的右边 android:layout_toRight ...

  2. Android App开发基础篇—数据存储(SQLite数据库)

    Android App开发基础篇-数据存储(SQLite数据库) 前言:Android中提供了对SQLite数据库的支持.开发人员可以在应用中创建和操作自己的数据库来存储数据,并对数据进行操作. 一. ...

  3. Android基础_数据存储

    2019独角兽企业重金招聘Python工程师标准>>> Android基础_数据存储 Android数据存储的几种形式 继承SQLiteOpenHelper public class ...

  4. 《Android移动应用基础教程》(Android Studio)(第二版)黑马程序员 课后习题答案

    <Android移动应用基础教程>(Android Studio)(第二版)黑马程序员 课后习题答案 目录 第1章 Android基础入门 第2章 Android常见界面布局 第3章 An ...

  5. 《Android 移动应用基础教程(Android Studio)(第2版)》【课本客观题】+【学习通2023春】【参考答案】

    文章目录 超星学习通智能终端软件开发(基于Android Studio环境)章节作业(39) 一 二 三 四 五 六 课本一 课本二 课本三 课本四 课本五 课本六(无) 课本七 课本八 课本九 课本 ...

  6. android移动应用基础教程--qq账号与密码

    android移动应用基础教程--qq账号与密码 android移动应用基础教程p115案例 实战演练-保存QQ账号密码. activity_main.xml <?xml version=&qu ...

  7. C语言函数(函数嵌套、递归调用)+局部变量和全局变量+extern关键字的使用+Visual Studio简单的使用教程+数据存储类别+内部函数外部函数

    上一篇文章:编译预处理知识点梳理:宏定义+文件包含+条件编译 C语言函数(函数嵌套.递归调用--+局部变量和全局变量+extern关键字的使用+Visual Studio简单的使用教程+数据存储类别+ ...

  8. 《Android移动应用基础教程》(Android Studio)(第二版)黑马教程 课后题答案 第7章

    <Android移动应用基础教程>(Android Studio)(第二版)黑马教程 课后题答案 第7章 一.判断题 1.对 2.对 3.对 4.错 5.对 二.选择题 1.C 2.B 3 ...

  9. 创建android程序时 默认使用布局是,《Android移动应用基础教程》中国铁道出版社课后习题(附答案)...

    <Android移动应用基础教程>中国铁道出版社课后习题(附答案) 第2章Android UI开发 一.填空题 1.Android中的布局分为6种,分别是RelativeLayout.Li ...

  10. Android中的5种数据存储方式

    Android中的5种数据存储方式 Android中的5种数据存储方式 数据存储在开发中是使用最频繁的,在这里主要介绍Android平台中实现数据存储的5种方式,分别是: 1 使用SharedPref ...

最新文章

  1. Bitmap 索引 vs. B-tree 索引:如何选择以及何时使用?——4-5
  2. (转)CString工作原理和常见问题分析
  3. 河海大学计算机与信息学院 王晶晶,信息学部 计算机与信息学院
  4. [sqlite] db-journal文件产生原因及说明
  5. java自定义栈类代码,异常堆栈和自定义类
  6. TF2.0—tf.keras.losses.BinaryCrossentropy
  7. 解读2016之Golang篇:极速提升,逐步超越
  8. 原生小程序和 mpvue对比(开发前)
  9. autojs 图片查找比对
  10. 用python解决题目:输入某年某月某日,判断这一天是这一年的第几天?
  11. 在tomcat里面配置数据库地址,以及在Spring和Java中的使用
  12. 一位宝石爱好者的零起点建站攻略
  13. GTD时间管理-节假日时间安排 | 每天成就更大成功
  14. 数据结构C语言实现-6—图
  15. 7-1 计算存款利息 (10分) 本题目要求计算存款利息
  16. EE-SX672 光眼
  17. linux系统下 安装docker
  18. iOS开发笔记之九十四——Swift中的可选类型Optional
  19. 2023年十大热门婚恋交友软件,真实靠谱相亲app排行榜
  20. 基于JAVA高校科研信息管理系统计算机毕业设计源码+数据库+lw文档+系统+部署

热门文章

  1. uni-app 获取当前的一周的年月日
  2. 7、菜单栏、工具栏、状态栏、浮动窗口、TextEdit
  3. 121.Best Time to Buy and Sell Stock
  4. 【转】Linux内存管理(最透彻的一篇)
  5. iOS端给unity发送消息,实现两者交互。
  6. opj1837 Balance(dp)
  7. Android-JNI开发系列《二》-在jni层的线程中回调到java层
  8. V4L2Gstreamer媒体控制工具(五)
  9. Binder运行机制的流程图
  10. Android系统信息获取 之五:系统语言信息(续)-语言地区和简写对照表