很多时候我们需要存储配置文件或者存储和读取一些用户数据,还有一些共享文件数据。和存储一些大型文件。
第一File
最开始我想的是使用创建一个文件用于存储File即常说的文件(I/O)存储方法,常用语存储大数量的数据,但是缺点是更新数据将是一件困难的事情。
FILENAME="testpath.txt";
private String read() {
try {
FileInputStream inputStream = openFileInput(FILENAME);
byte[] b = new byte[inputStream.available()];
inputStream.read(b);
return new String(b);
} catch (Exception e) {
}
return null;
}
private void write(String content) {
try {
FileOutputStream fos = openFileOutput(FILENAME, MODE_APPEND);
fos.write(content.getBytes());
fos.close();
} catch (Exception e) {
}
}
通过file方式进行文件存储,一般存储大数据量的文件,比方说音频文件,视频文件等。
第二SharedPreferences同时过SharedPreferences方法来进行存储和读取文件,SharedPreferences是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息。其存储位置在/data/data/<包名>/shared_prefs目录下。SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过Editor对象实现。
public static void SaveConfig1(Context context, Music music) {
SharedPreferences share = context.getSharedPreferences("music",
Context.MODE_WORLD_WRITEABLE);
Editor editor = share.edit();
editor.putString("music_path", music.Music_Path);
editor.putString("music_name", music.Music_Name);
editor.commit();
}
public static Music LoadConfig1(Context context) {
SharedPreferences share = context.getSharedPreferences("music",
Context.MODE_WORLD_WRITEABLE);
Music music = new Music();
music.Music_Path = share.getString("music_path", "无");
music.Music_Name = share.getString("music_name", "无");
return music;
}
Class Music{
private String Music_path ="";
private String Music_name ="";
public void SetMusic_path(String path){
this.Music_path = path;
}
public String GetMusic_path(){
return this.Music_path;
}
public String SetMusic_name(String name){
this.Music_name = name;
}
public String GetMusic_name(){
return Music_name;
}
}
使用方法是在例如在MusicFind类中存储文件内容
Class MusicFind extends Activity{
SaveConfig1(getContext,music);
...
}
在使用这个文件的时候,调用方法从music文件中得到
Class MusicPlay{
Music musics=null;
musics=LoadConfig1(getContext);
...
}
文件music存储的位置是在/date/data/项目名称/music下。一般使用SharedPreferences进行存储配置数据。如用户的一些软件特性设置。
第三Sqlite
下面还有一种方法,使用数据库,在android中使用的数据库一般是Sqlite,下面我讲解一下Sqlite的使用方法,内容参考http://www.cnblogs.com/wisekingokok/archive/2011/09/13/2174484.html
sqlite也是微型的数据存储方式,但数据库的使用比较麻烦一些,需要创建数据库,创建表格等。下面是使用sqlite的步骤第一创建数据库
SQLiteDatabase db = this.openOrCreateDatabase("test_db.db", Context.MODE_PRIVATE, null); SQLiteDatabase db2 = SQLiteDatabase.openOrCreateDatabase("/data/data/com.test/databases/test_db2.db3", null);
第二创建表,插入数据
db.execSQL("create table tab(_id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL)");
插入数据代码
ContentValues values = new ContentValues();
for(int i=0;i<10;i++){
values.put("name", "test" + i);
db.insert("tab", "_id", values);
}
通过下面方法查询数据
Cursor c = db.query("tab", null, null, null, null, null, null);
c.moveToFirst();
while(!c.isAfterLast())
{
int index = c.getColumnIndex("name");
Log.d("SQLite", c.getString(index));
c.moveToNext();
}
c = db.rawQuery("select * from tab", null);
c.moveToFirst(); while(!c.isAfterLast())
{
int index = c.getColumnIndex("name");
Log.d("SQLite", c.getString(index));
c.moveToNext();
}
数据库的使用在更新和查询数据上比较方便,如果我们需要一个数据,只需要一个查询语句可以直接查询自己的数据,而不需要像SharedPreferences得到一个完整对象。
这三种存储方式可以结合还用,我们使用SharedPreferences来存储用户配置文件,当用户启动程序时,更新配置。使用File来存储大型数据文件,比分说音频文件,视频文件等。使用Sqlite来存储用户数据,一个对象的属性数值。
分享到:
相关推荐
数据存储技术介绍(数据存储技术概述、存储介质、连接方式、DAS、NAS、SAN、虚拟存储、集群存储。)
数据存储加密技术白皮书.pdf》是关于数据存储加密技术的详细介绍,涵盖了数据加密的基本概念、数据加密技术的分类、数据加密算法、数据加密标准、数据加密应用场景等方面的知识点。 数据加密的基本概念 数据加密是...
基于Linux的嵌入式高速SAR数据存储技术 本文主要介绍了基于Linux的嵌入式高速SAR数据存储技术,旨在解决SAR原始回波数据的实时存储问题。该技术使用PowerPC为核心的嵌入式Linux软件平台,通过SAS控制器控制SSD硬盘...
阿里云总监系列课重磅上线!...第三期《深入解析数据存储技术原理及发展演进》特邀阿里云盘古分布式存储资深技术专家储道,为大家带来干货分享。本节课程《Linux开源存储技术》,欢迎大家前来学习。
数据存储技术培训(RAID)数据存储技术培训(RAID)数据存储技术培训(RAID)数据存储技术培训(RAID)数据存储技术培训(RAID)数据存储技术培训(RAID)数据存储技术培训(RAID)数据存储技术培训(RAID)数据存储...
阿里云总监系列课重磅上线!...第三期《深入解析数据存储技术原理及发展演进》特邀阿里云盘古分布式存储资深技术专家储道,为大家带来干货分享。本节课程《数据存储硬件技术》,欢迎大家前来学习。
共计175页ppt ,系统讲述数据库存储技术
文件系统技术内幕:大数据时代海量数据存储之道.docx
计算机云计算的数据存储技术.pdf
Google数据存储技术分析Google数据存储技术分析
本书内容聚焦于存储的技术演进,除基本技术的描述外,重点放在数据中心在云计算及大数据环境下存储新技术出现的背景、新技术架构、原理及实现,同时本书也把一部分内容放在具体的存储解决方案及实际运维管理中。...
数据存储技术 数据采集与存储技术研究现状 传统关系数据库 应用场景局限 – 面向结构化数据,致力于数据处理,保证严格 一致性 缺乏对海量数据的快速访问能力 – 根据列值来定位行,输入输出耗时 – 范式设计与web...
Android实现数据存储技术,JDBC连接数据库明细
2021年下一代数据存储技术研究报告 数据存储技术 研究报告
云计算的数据存储技术.pdf
遥感影像 海量数据 存储技术 海量遥感数据 存储技术
阿里云总监系列课重磅上线!...第三期《深入解析数据存储技术原理及发展演进》特邀阿里云盘古分布式存储资深技术专家储道,为大家带来干货分享。本节课程《 数据保护技术(一)》,欢迎大家前来学习。
本文介绍了一种基于 NoSQL 的地图瓦片数据存储技术,旨在解决传统关系型数据库在海量空间数据存储和并发访问性能上的不足之处。通过对 NoSQL 的概述和与关系型数据库的比较,我们可以了解到 NoSQL 在数据存储和访问...
阿里云总监系列课重磅上线!聚焦人工智能、弹性计算、...第三期《深入解析数据存储技术原理及发展演进》特邀阿里云盘古分布式存储资深技术专家储道,为大家带来干货分享。本节课程《闪存存储技术》,欢迎大家前来学习。
"文件系统技术内幕 大数据时代海量数据存储之道" 文件系统技术是大数据时代海量数据存储的核心技术之一。随着大数据时代的来临,海量数据的存储变得越来越重要。《文件系统技术内幕:大数据时代海量数据存储之道》...