我们知道程序在运行时,数据是存放在运行内存中的,一旦程序关闭,数据就会丢失。那么我们要想数据不丢失怎么办呢?那就需要将数据存储在外存中,比如sd卡和手机自身内存。
存储方式一:文件存储与读取
Context类中提供了一个openFileOutput ()方法,可以将数据存储到指定的文件中。这个方法有两个参数。第一个是文件名,文件名不可以包含路径,因为所有的文件都是默认存储到/data/data/<package name> /files/目录下的;第二个参数是文件测操作模式,MODE_PRIVATE & MODE_APPEND 。 MODE_PRIVATE是默认的操作模式,表示当指定同样文件名的时候,所写入的内容将会覆盖原文件中的内容,而MODE_APPEND则表示如果该文件已存在就往文件里面追加内容,不存在就创建新文件。使用代码实例:
public void save(String str){ FileOutputStream fos=null; BufferedWriter bw=null; try { fos=openFileOutput("myTestData", Context.MODE_PRIVATE); bw=new BufferedWriter(new OutputStreamWriter(fos)); try { bw.write(str); } catch (IOException e) { e.printStackTrace(); } } catch (FileNotFoundException e) { e.printStackTrace(); }finally{ if(bw!=null) try { bw.close(); } catch (IOException e) { e.printStackTrace(); } } }
Context类中提供了一个openFileInput ()方法,这个方法只有一个参数,那就是要读取的文件的文件名
使用实例:
public String load(String filename){ String str=""; StringBuilder content = new StringBuilder(); FileInputStream fis=null; BufferedReader br=null; try { fis=openFileInput(filename); br=new BufferedReader(new InputStreamReader(fis)); try { while((str=br.readLine())!= null ){ content.append(str); } } catch (IOException e) { e.printStackTrace(); } } catch (FileNotFoundException e) { e.printStackTrace(); }finally{ if(br!=null){ try { br.close(); } catch (IOException e) { e.printStackTrace(); } } } return content.toString(); }
文件存储使用的基本都是java的io流,熟悉java的文件操作的应该很容易读懂上面的代码。文件存储简单,但是如果要存储复杂的数据,就得自己定义存取结构与方式,才能够正确的存储与获取。
存储方式二·:SharedPreferences存储
不同于文件的存储方式,SharedPreferences是使用键值对的方式来存储数据的。
用代码来看可能更清晰些。
存:
SharedPreferences.Editor editor=getSharedPreferences("data", Context.MODE_PRIVATE).edit(); editor.putString("name", "Tom"); editor.putInt("age", 18); editor.putBoolean("married", false); editor.commit();
取:
SharedPreferences pref = getSharedPreferences("data", MODE_PRIVATE); String name = pref.getString("name", ""); int age = pref.getInt("age", 0); boolean married = pref.getBoolean("married", false); Log.d("MainActivity", "name is " + name); Log.d("MainActivity", "age is " + age); Log.d("MainActivity", "married is " + married);
很明显,SharedPreferences存储对于键值对的数据存储很方便。比如存储用户名,密码,就可以实现一个记住密码功能。但是对于密码这种私密性数据都会进行加密存储,不会直接存储的,这里就不祥细论述了。
相关推荐
从头学Android之Android的数据存储--SQLite示例源代码
Android实现数据存储技术,JDBC连接数据库明细
android 浏览器 数据存储
Android学习之数据存储源码,0分提供下载了哦!
Android本地数据存储中的文件存储,写入,重写和删除Android中.txt格式的文件
Android实验数据存储SQLite
在android平台上应用数据存储的方法全集。
2.掌握各种文件存储的区别与适用情况; 3.了解SQLite数据库的特点和体系结构; 4.掌握SQLite数据库的建立和操作方法; 5.理解ContentProvider的用途和原理; 6.掌握ContentProvider的创建与使用方法。 源码和整个...
Android数据存储 Android数据存储
在Android studio上实现了sqlite的数据的新建、查询、添加、删除等功能。
android 数据存储 我测试需要看的 不需要就不要看啦。
Android数据存储(内置sdcard)案例1
本文档总结了Android数据存储的各个类型,以及Android在数据存储使用上的安全注意事项。
Android数据存储(非图片),将网络json数据系列化成对象,存储到内存和文件中。下一次直接从内存或者文件中获取数据,减少网络开销。
android数据存储之DbHelper,很好的例子
android 数据存储的典型编程方法,一个实用的学习课件ppt、附demo源程序。
该资源包含了一个android实现的数据存储,包含了利用:sharedpreference,file,sqlite,网络存储的四种方法,简单易懂。
数据存储方式有三种:一个是文件,一个是数据库,另一个则是网络。其中文件和数据库可能用的稍多一些,文件用起来较为方便,程序可以自己定义格式;数据库用起稍烦锁一些,但它有它的优点,比如在海量数据时性能优越...
Android应用源码之Android学习之数据存储。十分简单的源码,有需要的朋友可以下载看一下。
Android本地数据存储中的SQLite,对SQLite的一般用法的解析