数据存储--------详解持久化技术

2023-10-19 22:32

本文主要是介绍数据存储--------详解持久化技术,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文件存储

       方法存储是Android最基本的一种数据存储方式下面就给大家承上代码:

       

package com.example.liangshaoteng.fileoutputstream;import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;public class MainActivity extends AppCompatActivity {private BufferedWriter bufferedWriter;private EditText editText;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);editText = (EditText) findViewById(R.id.et_text);}private void load() {try {//从代码的openFileInput我们就能看出是:打开文件从里面输入到什么地方FileInputStream data = openFileInput("dataSave");StringBuffer stringBuffer = new StringBuffer();//缓冲区读取BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(data));String line = "";//一行一行的读取while ((line = bufferedReader.readLine()) != null) {stringBuffer.append(line);}//通过StringBuffer追加到一起Toast出来Toast.makeText(getApplicationContext(), stringBuffer.toString(), Toast.LENGTH_LONG).show();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}private void save(String inputText) {if (inputText.isEmpty()) return;try {//从代码的openFileOutput我们就能看出是:打开文件从外面放东西//第一个参数是:文件的名称 第二个参数是:存储的模式//存储模式 ://Context.MODE_PRIVATE:别的应用不能访问得到SharedPreferences对象//Context.MODE_WORLD_READABLE:别的应用可以访问,并且是可以读取SharedPreferences中的数据,但不能写入数据//Context.MODE_WORLD_WRITEABLE:别的应用可以访问,可以在SharedPreferences中写入修改数据FileOutputStream dataSave = openFileOutput("dataSave", Context.MODE_PRIVATE);//在放东西的期间是需要一个缓冲BufferedWriterbufferedWriter = new BufferedWriter(new OutputStreamWriter(dataSave));//然后通过缓冲写入数据bufferedWriter.write(inputText);} catch (IOException e) {e.printStackTrace();} finally {Toast.makeText(getApplicationContext(), "保存成功!", Toast.LENGTH_LONG).show();if (bufferedWriter != null) {try {//不要忘记用完要关闭bufferedWriter.close();} catch (IOException e) {e.printStackTrace();}}}}public void commit(View view) {String trim = editText.getText().toString().trim();if (trim.isEmpty()) return;save(trim);}public void input(View view) {load();}
}



下面就是ShardPreference这一个非常简单所以我就不再详细的讲解了后续呢我将给出工具类大家可以下载直接拿来用

 大家先看一下工具类ShardPreference

 

package com.waywings.fm.utils;import android.content.Context;
import android.content.SharedPreferences;public class ShareUtil {public static String CONFIG = "config";public static String FCONFIG = "fmconfig";public static String INTFIG = "intconfig";private static SharedPreferences sharedPreferences;public static void saveFloatData(Context context, String key, Float value) {if (sharedPreferences == null) {sharedPreferences = context.getSharedPreferences(FCONFIG, Context.MODE_PRIVATE);}sharedPreferences.edit().putFloat(key, value).commit();}public static Float getFloatData(Context context, String key, Float defValue) {if (sharedPreferences == null) {sharedPreferences = context.getSharedPreferences(FCONFIG, Context.MODE_PRIVATE);}return sharedPreferences.getFloat(key, defValue);}public static void saveStringData(Context context, String key, String value) {if (sharedPreferences == null) {sharedPreferences = context.getSharedPreferences(CONFIG, Context.MODE_PRIVATE);}sharedPreferences.edit().putString(key, value).commit();}public static String getStringData(Context context, String key, String defValue) {if (sharedPreferences == null) {sharedPreferences = context.getSharedPreferences(CONFIG, Context.MODE_PRIVATE);}return sharedPreferences.getString(key, defValue);}public static int getIntData(Context context, String key, int defValue) {if (sharedPreferences == null) {sharedPreferences = context.getSharedPreferences(INTFIG, Context.MODE_PRIVATE);}return sharedPreferences.getInt(key, defValue);}public static void savaIntData(Context context, String key, int value) {if (sharedPreferences == null) {sharedPreferences = context.getSharedPreferences(INTFIG, Context.MODE_PRIVATE);}sharedPreferences.edit().putInt(key, value).commit();}
}

不足之处还望大家指出 !

Sqlite存储 : 请大家移步到我的另一篇文章 :点击打开链接

后续给大家提供的工具类的下载 :   工具类下载

这篇关于数据存储--------详解持久化技术的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/242791

相关文章

Python获取中国节假日数据记录入JSON文件

《Python获取中国节假日数据记录入JSON文件》项目系统内置的日历应用为了提升用户体验,特别设置了在调休日期显示“休”的UI图标功能,那么问题是这些调休数据从哪里来呢?我尝试一种更为智能的方法:P... 目录节假日数据获取存入jsON文件节假日数据读取封装完整代码项目系统内置的日历应用为了提升用户体验,

SpringBoot3实现Gzip压缩优化的技术指南

《SpringBoot3实现Gzip压缩优化的技术指南》随着Web应用的用户量和数据量增加,网络带宽和页面加载速度逐渐成为瓶颈,为了减少数据传输量,提高用户体验,我们可以使用Gzip压缩HTTP响应,... 目录1、简述2、配置2.1 添加依赖2.2 配置 Gzip 压缩3、服务端应用4、前端应用4.1 N

Linux换行符的使用方法详解

《Linux换行符的使用方法详解》本文介绍了Linux中常用的换行符LF及其在文件中的表示,展示了如何使用sed命令替换换行符,并列举了与换行符处理相关的Linux命令,通过代码讲解的非常详细,需要的... 目录简介检测文件中的换行符使用 cat -A 查看换行符使用 od -c 检查字符换行符格式转换将

详解C#如何提取PDF文档中的图片

《详解C#如何提取PDF文档中的图片》提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使用,下面我们就来看看如何使用C#通过代码从PDF文档中提取图片吧... 当 PDF 文件中包含有价值的图片,如艺术画作、设计素材、报告图表等,提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使

Android中Dialog的使用详解

《Android中Dialog的使用详解》Dialog(对话框)是Android中常用的UI组件,用于临时显示重要信息或获取用户输入,本文给大家介绍Android中Dialog的使用,感兴趣的朋友一起... 目录android中Dialog的使用详解1. 基本Dialog类型1.1 AlertDialog(

C#数据结构之字符串(string)详解

《C#数据结构之字符串(string)详解》:本文主要介绍C#数据结构之字符串(string),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录转义字符序列字符串的创建字符串的声明null字符串与空字符串重复单字符字符串的构造字符串的属性和常用方法属性常用方法总结摘

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

Java中StopWatch的使用示例详解

《Java中StopWatch的使用示例详解》stopWatch是org.springframework.util包下的一个工具类,使用它可直观的输出代码执行耗时,以及执行时间百分比,这篇文章主要介绍... 目录stopWatch 是org.springframework.util 包下的一个工具类,使用它

Java进行文件格式校验的方案详解

《Java进行文件格式校验的方案详解》这篇文章主要为大家详细介绍了Java中进行文件格式校验的相关方案,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、背景异常现象原因排查用户的无心之过二、解决方案Magandroidic Number判断主流检测库对比Tika的使用区分zip

Java实现时间与字符串互相转换详解

《Java实现时间与字符串互相转换详解》这篇文章主要为大家详细介绍了Java中实现时间与字符串互相转换的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、日期格式化为字符串(一)使用预定义格式(二)自定义格式二、字符串解析为日期(一)解析ISO格式字符串(二)解析自定义