问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

数据存储和读取该怎么实现

发布网友 发布时间:2022-04-24 00:19

我来回答

1个回答

热心网友 时间:2022-04-08 21:40

Android应用开发中,给我们提供了5种数据的存储方式
1 使用SharedPreferences存储数据
2 文件存储数据
3 SQLite数据库存储数据
4 使用ContentProvider存储数据
5 网络存储数据
不同的业务逻辑,或者需求,用不同的实现方式,以下是这几中数据存储方式的说明用及法:

第一种: 使用SharedPreferences存储数据
SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置比如窗口状态,一般在Activity中 重载窗口状态onSaveInstanceState保存一般使用SharedPreferences完成,它提供了Android平台常规的Long长 整形、Int整形、String字符串型的保存。
以下为示例代码:
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

//获取SharedPreferences对象
Context ctx = MainActivity.this;
SharedPreferences sp = ctx.getSharedPreferences("SP", MODE_PRIVATE);
//存入数据
Editor editor = sp.edit();
editor.putString("STRING_KEY", "string");
editor.putInt("INT_KEY", 0);
editor.putBoolean("BOOLEAN_KEY", true);
editor.commit();

//返回STRING_KEY的值
Log.d("SP", sp.getString("STRING_KEY", "none"));
//如果NOT_EXIST不存在,则返回值为"none"
Log.d("SP", sp.getString("NOT_EXIST", "none"));
}
}

第二种: 文件存储数据
关于文件存储,Activity提供了openFileOutput()方法可以用于把数据输出到文件中,具体的实现过程与在J2SE环境中保存数据到文件中是一样的。
文件可用来存放大量数据,如文本、图片、音频等。
默认位置:/data/data/ >/files/***.***。
代码示例:
public void save(){
try {
FileOutputStream outStream=this.openFileOutput("a.txt",Context.MODE_WORLD_READABLE);
outStream.write(text.getText().toString().getBytes());
outStream.close();
Toast.makeText(MyActivity.this,"Saved",Toast.LENGTH_LONG).show();
} catch (FileNotFoundException e) {
return;
}
catch (IOException e){
return ;
}
}

第三种: SQLite数据库存储数据
SQLite是轻量级嵌入式数据库引擎,它支持 SQL 语言,并且只利用很少的内存就有很好的性能。此外它还是开源的,任何人都可以使用它。许多开源项目((Mozilla, PHP, Python)都使用了 SQLite。
SQLite 由以下几个组件组成:SQL 编译器、内核、后端以及附件。
SQLite 通过利用虚拟机和虚拟数据库引擎(VDBE),使调试、修改和扩展 SQLite 的内核变得更加方便。
读取文件示例:

public void load(){
try {
FileInputStream inStream=this.openFileInput("a.txt");
ByteArrayOutputStream stream=new ByteArrayOutputStream();
byte[] buffer=new byte[1024];
int length=-1;
while((length=inStream.read(buffer))!=-1) {
stream.write(buffer,0,length);
}
stream.close();
inStream.close();
text.setText(stream.toString());
Toast.makeText(MyActivity.this,"Loaded",Toast.LENGTH_LONG).show();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
catch (IOException e){
return ;
}
}

第四种 使用ContentProvider存储数据 ContentProvider其实也是通过数据库的方式来存储数据的,因此这里不再做详细介绍

第五种 网络存储数据 也就是说将数据保存在服务器,android上只需要通过httpclient发起一个请求,向服务器获取数据即可
火台,驿马,电报机,电话等。人类储存信息的工具有:牛骨﹑竹
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
什么药止痒效果好 慕容三藏履历 职业cf电脑配置cf电脑配置要求是什么 玩3a电脑配置要求想玩3a大作需要什么配置 台式电脑哪些可以畅享3a大作想玩3a大作需要什么配置 七彩虹i7-10700台式机 性能强劲 高效静音 小黄鱼游戏台式电脑主机(i7-10700F、16GB、512GB、RTX3070)-适用... 工伤保险记什么科目 在4×4的正方形格纸中,有一个以格点为顶点的△ABC,请你找到点C,使三角... 在4×4方格中, 要求C点在格点上,且以AB为边的△ABC为直角三角形,标出所... txt文件最多可以存放多少行数据? 怎么实现自定义文件存储数据 java程序中怎样用文件存储数据 为什么利用文件来保存数据是不够专业的? 文件用来存储计算机的数据,并可以存放到多种介质上,是对的还是错的? 竹子的诗歌!诗歌呀!~ 4g信号后面有hd是什么意思? 《官道之权色撩人》txt全集下载 vivo手机如何把联系人号码设置保存手机卡改成保存手机里 vivo手机电话号码存储怎样修改 vivox21怎么把电话号码存在手机里 vivoS5手机怎么把号码存在SIM卡里? vivo如何每次存号码如何默认存到sim卡上? vivo怎么把电话号码存入sim卡? 知道半径和弦长求弧长 知道半径怎么求圆的面积,知道直径呢?周长呢? 知道半径和面积求圆心角。需公式。(扇形) 知道半径的平方怎么求半径 知道半径怎样求出圆柱的高 知道半径 知道角度怎样算弧长? c语言编程中怎么用文件存储数据?具体一点,谢谢 c语言中采用二进制文件存储数据的问题 请教如何将文件存储到数据库中? c语言中怎样实现用文件储存数据,然后再调用这个数据? 根据文件中数据的存储形式,一般将文件分为 和。 使用sqlite存储数据和使用文件存储数据各有什么优势 计算机是怎样存储文件的呢 平安保险如何转人工客服? 平安保险95511怎么转人工啊? 平安退保电话多少,电话能直接退保吗? 第一条主宰的刷新时间开局多少分钟 第一条主宰的刷新时间是多久? 第一条第一条主宰的刷新时间是开局多少分钟 第一条主宰的刷新时间是开局多少时间 《王者荣耀》第一条主宰的刷新时间是多久,《王者荣耀 王者荣耀第一条主宰的刷新时间是开局多少分钟正确答案 第一条主宰的刷新时间是开局多少分钟 王者荣耀夫子的试练答题答案 第一条主宰的刷新时间是开局的多少 第一条主宰刷新的时间是开局多少分钟 第一条主宰的刷新时间是开局多少