当前位置: 首页 > news >正文

Android Studio(数据存储)

数据存储方式

方式特点
文件存储openFileInput()和openFileOutput()进行存写
SharedPreferences以XML格式进行存储
SQLite运算快、占用资源少、支持基本的sql语法
ContentProvider可用于应用之间的数据交互
网络存储通过网络提供的存储空间来存储/获取数据信息

文件存储

主要语法
FileOutputStream fos = openFileOutput(String filename,int mode);
FileInputStream fis = openFileInput(String filename);
modedesc
Context.MODE_PRIVATE该文件为当前程序私有
Context.MODE_APPEND该文件的内容可以追加
Context.MODE_WORLD_READABLE该文件的内容可以被其他程序“读”
Context.MODEL_WORLD_WRITEABLE该文件的内容可以被其他程序“写”
代码示例
//参考对象为内存:从内存输出即写入、输入到内存即读取// 1.写入数据到文件
String fileName = "myfile.txt";
String data = "Hello, World!";
try {FileOutputStream fos = openFileOutput(fileName, Context.MODE_PRIVATE);fos.write(data.getBytes());fos.close();
} catch (IOException e) {e.printStackTrace();
}// 2.从文件中读取数据
try {FileInputStream fis = openFileInput(fileName);InputStreamReader isr = new InputStreamReader(fis);BufferedReader br = new BufferedReader(isr);StringBuilder sb = new StringBuilder();String line;while ((line = br.readLine()) != null) {sb.append(line);}fis.close();String savedData = sb.toString();
} catch (IOException e) {e.printStackTrace();
}

SharedPreferences

简要

以XML方式的轻量级存储,适合存储少量的键值对数据,适用于简单的配置信息、用户偏好设置和应用程序状态等,比如登录的用户名。

语法
// 存储数据到 SharedPreferences
SharedPreferences sharedPreferences = getSharedPreferences("MyPrefs", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("key", "value");
editor.apply();// 从 SharedPreferences 中读取数据
String savedValue = sharedPreferences.getString("key", "default value");

SQLite

语法
// 1. 创建实现类extends SQLiteOpenHelper
public class DBHelper extends SQLiteOpenHelper {private static final String DATABASE_NAME = "myDb.db";private static final int DATABASE_VERSION = 1;private Context context;public DBHelper(Context context) {super(context, DATABASE_NAME, null, DATABASE_VERSION);this.context = context;}@Overridepublic void onCreate(SQLiteDatabase db) {}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {}}// 2. 创建实现类对象,并调用相关方法实现CRUD
DBHelper dbHelper = new DBHelper(context);
SQLiteDatabase db = dbHelper.getWritableDatabase();
Cursor cursor = db.rawQuery("SELECT * FROM myTable", null);
while (cursor.moveToNext()){int id = cursor.getInt(cursor.getColumnIndexOrThrow("id"));...
}
cursor.close();
ContentValues

    SQLiteDatabase对象自身提供了一些CRUD方法,像表记录添加、修改,理应上需要我们传入多个字段(包括字段名和字段值),而为了解决这个问题就有了ContentValues对象,它允许我们给其增加多个键(字段名)、值(字段值);

    所以当我们执行这个SQLiteDatabase对象的自身提供的添加或修改方法只用传入ContentValues即可。

    可以参考下面代码例子:

ContentValues values = new ContentValues();
values.put("name", "John Doe");
values.put("age", 30);
values.put("email", "johndoe@example.com");// 插入数据到数据库
long newRowId = db.insert("myTable", null, values);

后言

    至于ContentProvider和网络存储这两种存储方式只有结合具体的需求项目才能更好地学习,这里就不介绍了,需要学习的可以自己搜索相关文章具体学习。

相关文章:

Android Studio(数据存储)

数据存储方式 方式特点文件存储openFileInput()和openFileOutput()进行存写SharedPreferences以XML格式进行存储SQLite运算快、占用资源少、支持基本的sql语法ContentProvider可用于应用之间的数据交互网络存储通过网络提供的存储空间来存储/获取数据信息 文件存储 主要语法…...

人,要懂得享受孤独

喜欢在如水的月光下,望一轮洁白的皓月, 喜欢在清寂的夜晚,看那星光流转倏忽间的变幻,牵动心中万千情怀。 独享这份清幽,遐想那月中寻桂子的浪漫。 这个世界太喧闹,偶尔,需要关一关窗&#xff0c…...

Spring Boot + EasyUI Datebox和Datetimebox样例

使用EasyUI的Datebox和Datetimebox组件,并对其进行适当的改造,比如更改日期格式、设置默认值或者将当前时间设置为默认值。 一、运行结果 二、实现代码 1.代码框架 2.实现代码 SpringBootMainApplication.java: package com.xj.main;import org.spri…...

web前端JS基础------制作一个获取验证码

1&#xff0c;需要一个定时器&#xff0c;和一个button&#xff0c;通过点击事件启动获取验证码 2&#xff0c;参考代码如下 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title></head><body><…...

MyBatis面经

MyBatis常见面试题 &#xff01;&#xff01;本文主要是博主总结看着玩的&#xff0c;不具有很高的参考价值&#xff0c;慎重 1、MyBatis是什么&#xff1f;MyBatis工作原理&#xff1f;MyBatis的使用场景有哪些&#xff1f; MyBatis是一款优秀的持久层框架&#xff0c;它是…...

SpringBoot基础(六)-- 辅助功能之一 -- 内嵌tomcat

目录 1. 内嵌Tomcat定义位置 2. 内嵌Tomcat运行原理 3. 更换内嵌Tomcat 在前面,我们做的SpringBoot入门案例(SpringBoot基础(一)-- 使用idea(2022版)创建一个Springboot项目(联网开发))勾选了Spirng-web的功能&#...

K8s:部署 CNI 网络组件+k8s 多master集群部署+负载均衡及Dashboard k8s仪表盘图像化展示管理

目录 1 部署 CNI 网络组件 1.1 部署 flannel 1.2 部署 Calico 1.3 部署 CoreDNS 2 负载均衡部署 3 部署 Dashboard 1 部署 CNI 网络组件 1.1 部署 flannel K8S 中 Pod 网络通信&#xff1a; ●Pod 内容器与容器之间的通信 在同一个 Pod 内的容器&#xff08;Pod 内的容…...

「直播回放」使用 PLC + OPC + TDengine,快速搭建烟草生产监测系统

在烟草工业场景里&#xff0c;多数设备的自动控制都是通过 PLC 可编程逻辑控制器来实现的&#xff0c;PLC 再将采集的数据汇聚至 OPC 服务器。传统的 PI System、实时数据库、组态软件等与 OPC 相连&#xff0c;提供分析、可视化、报警等功能&#xff0c;这类系统存在一些问题&…...

私域流量搭建与运营,技巧全攻略!

2023年是比拼运营深度和服务效率的一年&#xff0c;用户对于体验的期望值将持续增长&#xff0c;企业需提供无缝的客户体验&#xff0c;以推动增长、保障收入、确保客户忠诚度。在疫情新常态下&#xff0c;企业已构建起APP、小程序等一系列线上触点矩阵&#xff0c;而各个触点之…...

AWS SAP-C02教程0--课程概述

SAP是亚马逊云的解决方案架构师专业级认证&#xff0c;关于本课程&#xff0c;我会简述已下3点&#xff1a; 在本课程中按照自己的分类讲述考试相关的AWS产品&#xff0c;特别会注明每个产品在考试中可能出现的考点会对一些解决方案做对比&#xff0c;通过一些对比给出不同场景…...

RFC使用与WebService

RFC连接 CSDN RFC中引用类型组 http://t.csdnimg.cn/wQWAYhttp://t.csdnimg.cn/wQWAY 远程目标系统维护SM59 这里的类型指的是目标系统的系统类型(目标系统即rfc函数存在的系统). 类型2&#xff08;R/2连接&#xff09;&#xff0c;只需给出主机名&#xff0c;所有通信信息…...

打造全球化电商平台,多语言商城系统助您开拓海外市场

全球化进程的加速&#xff0c;越来越多的企业开始将目光投向海外市场。然而&#xff0c;语言和文化差异成为了企业面临的一大挑战。为了帮助企业顺利拓展海外业务&#xff0c;多语言商城系统应运而生。作为一种功能强大的电子商务平台&#xff0c;多语言商城系统具备以下关键功…...

【滑动窗口】篮里到底能装 “几个水果” 呢?

Problem: 904. 水果成篮 文章目录 题目分析算法原理分析暴力枚举 哈希表滑动窗口优化数组再度优化 复杂度Code 题目分析 首先我们来分析一下本题的思路 首先我们通过题目的描述来理解一下其要表达的含义&#xff0c;题目给到我们一个fruit数组&#xff0c;里面存放的是每棵树上…...

newstarctf2022week2

Word-For-You(2 Gen) 和week1 的界面一样不过当时我写题的时候出了个小插曲 连接 MySQL 失败: Access denied for user rootlocalhost 这句话印在了背景&#xff0c;后来再进就没了&#xff0c;我猜测是报错注入 想办法传参 可以看到一个name2,试着传参 发现有回显三个字段…...

集群调度-01

目录 1、调度约束 2、Pod 是 Kubernetes 的基础单元&#xff0c;Pod 启动典型创建过程如下 2.1 工作机制 **** 2.2 调度过程 *** 2.3 Predicate 有一系列的常见的算法可以使用&#xff1a; ** 2.4 指定调度节点 1、调度约束 Kubernetes 是通过 List-Watch **…...

【软件工程】金管局计算机岗位——软件测试的分类(⭐⭐⭐⭐)

软件工程 软件测试的分类从是否关心软件内部结构和具体实现的角度划&#xff08;⭐⭐⭐⭐&#xff09;从是否执行代码角度划分&#xff08;⭐⭐&#xff09;从软件开发的过程按阶段划分&#xff08;⭐⭐⭐⭐&#xff09; 软件测试的分类 考点导读&#xff1a; 软件测试是软件工…...

Halcon WPF 开发学习笔记(1):Hello World小程序

文章目录 文章专栏视频链接Hello World训练图片训练目的 开始训练图像预处理导入图像三通道处理调用算子通道选取 滤波什么是好的滤波 增加对比度 区域选取阈值处理算子参数选择运行结果(红色为选择区域) 区域分割运行结果 特征筛选参数代码第二次&#xff0c;面积筛选 画选中十…...

pix2tex - LaTeX OCR 安装使用记录

系列文章目录 文章目录 系列文章目录前言一、安装二、使用三、少侠请留步&#xff0c;点赞、收藏、关注 前言 项目地址&#xff1a;这儿 一、安装 版本要求 Python: 3.7 PyTorch: >1.7.1 安装&#xff1a;pip install "pix2tex[gui]" 注意&#xff1a;Pyside6…...

前端框架Vue学习 ——(四)Axios

文章目录 Axios 介绍Axios 入门Vue项目中使用 Axios Axios 介绍 介绍: Axios 对原生的 Ajax 进行了封装&#xff0c;简化书写&#xff0c;快速开发。&#xff08;异步请求&#xff09; 官网: https://www.axios-http.cn/ 官网介绍&#xff1a;Axios 是一个基于 promise 网络请…...

将json数据导入到ES集群——解决方案对比填坑日记

需求 将写好的json数据。导入到es集群 数据说明 文件JSON数据&#xff0c;一行一个JSON。 {"id":"d2716ae8fba4e026c4bd9445c3f49e2c","lang":"zh","title":"吉美旅馆","content":"吉美..."}…...

idea大量爆红问题解决

问题描述 在学习和工作中&#xff0c;idea是程序员不可缺少的一个工具&#xff0c;但是突然在有些时候就会出现大量爆红的问题&#xff0c;发现无法跳转&#xff0c;无论是关机重启或者是替换root都无法解决 就是如上所展示的问题&#xff0c;但是程序依然可以启动。 问题解决…...

【kafka】Golang实现分布式Masscan任务调度系统

要求&#xff1a; 输出两个程序&#xff0c;一个命令行程序&#xff08;命令行参数用flag&#xff09;和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽&#xff0c;然后将消息推送到kafka里面。 服务端程序&#xff1a; 从kafka消费者接收…...

MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例

一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...

【入坑系列】TiDB 强制索引在不同库下不生效问题

文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)

概述 在 Swift 开发语言中&#xff0c;各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过&#xff0c;在涉及到多个子类派生于基类进行多态模拟的场景下&#xff0c;…...

Leetcode 3577. Count the Number of Computer Unlocking Permutations

Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接&#xff1a;3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯&#xff0c;要想要能够将所有的电脑解锁&#x…...

多种风格导航菜单 HTML 实现(附源码)

下面我将为您展示 6 种不同风格的导航菜单实现&#xff0c;每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...

【Java学习笔记】BigInteger 和 BigDecimal 类

BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点&#xff1a;传参类型必须是类对象 一、BigInteger 1. 作用&#xff1a;适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...

#Uniapp篇:chrome调试unapp适配

chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器&#xff1a;Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...

保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek

文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama&#xff08;有网络的电脑&#xff09;2.2.3 安装Ollama&#xff08;无网络的电脑&#xff09;2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...