Android移动应用基础教程【数据存储】

举报
振华OPPO 发表于 2022/03/06 15:50:45 2022/03/06
【摘要】 @TOC 一、数据存储方式 二、文件存储 1、将数据存入文件中 1.1、内部存储FileOutputStream fos = openFileOutput(String name, int mode);//参数是文件名和文件的操作模式//打开应用程序中对应的输出流,将数据存储到指定的文件中FileInputStream fis = openFileInput(String name);//打...

@TOC

一、数据存储方式

在这里插入图片描述

二、文件存储

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_GRANTED
   	super.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开发中非常重要的内容,一般在应用程序中会经常涉及到数据存储的知识,因此要求初学者必须熟练掌握本章知识。

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

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。