`
gogoalong
  • 浏览: 49120 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

技术点之数据存储

阅读更多
很多时候我们需要存储配置文件或者存储和读取一些用户数据,还有一些共享文件数据。和存储一些大型文件。
第一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来存储用户数据,一个对象的属性数值。
分享到:
评论

相关推荐

    文件系统技术内幕:大数据时代海量数据存储之道.docx

    文件系统技术内幕:大数据时代海量数据存储之道 大数据时代的到来带来了海量数据的挑战,如何高效、可靠地存储和管理这些数据成为企业和组织面临的重要问题。文件系统技术作为信息管理的重要组成部分,在海量数据...

    数据存储技术介绍

    数据存储技术是指用于存储、管理和保护数字信息的技术和设备。随着信息技术的快速发展,数据存储技术也在不断进步,以适应日益增长的数据存储需求。本文将介绍数据存储技术的基本概念、存储介质、连接方式、以及虚拟...

    计算机云计算的数据存储技术.pdf

    它的出现,不仅为人们提供了更加便捷、高效的数据存储解决方案,还大大促进了大数据分析技术的发展。随着云计算技术的不断完善和推广,人们越来越依赖于云存储系统来管理和存储数据,这对个人用户以及企业用户都带来...

    Android实现数据存储技术

    Android 实现数据存储技术 Android 平台中实现数据存储的五种方式分别是:使用 SharedPreferences 存储数据、文件存储数据、SQLite 数据库存储数据、使用 ContentProvider 存储数据和网络存储数据。 使用 ...

    数据存储加密技术白皮书.pdf

    数据存储加密技术白皮书.pdf》是关于数据存储加密技术的详细介绍,涵盖了数据加密的基本概念、数据加密技术的分类、数据加密算法、数据加密标准、数据加密应用场景等方面的知识点。 数据加密的基本概念 数据加密是...

    基于Linux的嵌入式高速SAR数据存储技术.pdf

    基于Linux的嵌入式高速SAR数据存储技术 本文主要介绍了基于Linux的嵌入式高速SAR数据存储技术,旨在解决SAR原始回波数据的实时存储问题。该技术使用PowerPC为核心的嵌入式Linux软件平台,通过SAS控制器控制SSD硬盘...

    基于云计算的数据存储技术研究.pdf

    本文主要探讨基于云计算的数据存储技术,研究如何通过云计算提升数据存储效率和质量,以及如何利用数据加密技术、身份认证、数据可取回性和数据存储技术来增强存储安全性与数据管理的可靠性。 云计算技术的核心在于...

    云计算环境下的数据存储技术分析.pdf

    本文主要探讨在云计算环境下数据存储技术的应用和关键技术分析。 首先,选择云计算的理由有多方面。云计算环境下,企业或个人用户可以根据自身需求灵活选择私有云储存或公共云储存。私有云一般用于企业内部,提供更...

    数据存储技术培训(RAID).pdf

    数据存储技术培训(RAID)数据存储技术培训(RAID)数据存储技术培训(RAID)数据存储技术培训(RAID)数据存储技术培训(RAID)数据存储技术培训(RAID)数据存储技术培训(RAID)数据存储技术培训(RAID)数据存储...

    基于分布式系统的海量数据存储技术.pdf

    其中BigTable是Google设计的一个高性能、可扩展的分布式数据存储系统,特别适用于存储大规模结构化数据,目前依然是Google数据存储的基础架构之一。BigTable的数据模型建立在稀疏的、分布式的、持久化存储的多维Map...

    云数据安全存储技术分析.pdf

    随着信息技术的飞速发展,尤其是云计算技术的兴起,越来越多的企业和个人选择将数据存储在云端。然而,如何确保这些存储在云端的数据安全成为了亟待解决的关键问题之一。本文旨在深入探讨云数据安全存储的相关技术...

    下一代数据存储技术研究报告(2021年).pdf

    随着信息技术的飞速发展,数据存储技术已成为现代信息系统不可或缺的基础。本报告将全面梳理下一代数据存储技术的发展趋势,深入探讨其在企业级存储系统中的应用和实施建议,以及在数字化转型中的赋能作用。 一、...

    基于计算机云计算的数据存储技术分析.pdf

    云存储技术是云计算服务中的核心之一,它通过互联网为用户提供数据存储和访问服务。本文将探讨基于计算机云计算的数据存储技术,分析其组成、安全性措施及其在网络安全存储中的应用。 首先,云存储系统的基础是存储...

    大数据时代下计算机数据存储与传输技术研究.pdf

    随着大数据时代的到来,计算机数据存储与传输技术已经成为了信息科学领域重要的研究方向之一。由于大数据时代对数据存储与传输的安全性、便捷性等要求更高,传统的数据存储与传输技术已经不能完全满足需求,因此在...

    2021年下一代数据存储技术研究报告.pdf

    2021年下一代数据存储技术研究报告 数据存储技术 研究报告

    中国信通院发布《下一代数据存储技术研究报告(2021年)》

    随着信息技术的快速发展,数据存储技术作为现代信息系统不可或缺的基础,已经经历了多次技术迭代与革新。数据存储的历史最早可以追溯到人类使用树枝和石头记录信息的原始方式,通过结绳记事、象形文字、甲骨文、竹简...

    海量遥感影像数据存储技术研究

    遥感影像 海量数据 存储技术 海量遥感数据 存储技术

    南京林业大学数据存储技术期末复习

    数据存储技术是信息技术领域的重要组成部分,它涉及到如何...这些知识点对于理解数据存储技术的基础概念、设计原则以及优化存储系统性能至关重要。在复习过程中,需要深入理解每个概念,并通过实践操作来巩固理论知识。

Global site tag (gtag.js) - Google Analytics