android 数据持久化——I/O操作
上一节中简单的介绍了File的操作,这一节来说说使用android平台自带对象实现文件的基本操作
主要的两个类:openFileOutput(写)和openFileInput(读)
向文件中写如数据代码如下:
//向文件写入内容
try {
OutputStream os = openFileOutput("file-io.txt", Context.MODE_PRIVATE);
String str = "向文件中写入数据";
os.write(str.getBytes("utf-8"));
os.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
读取文中的代码如下:
//读取文件中的内容
try {
InputStream is = openFileInput("file-io.txt");
byte[] buffer = new byte[100];
int byteLength = is.read(buffer);
String str2 = new String(buffer, 0, byteLength, "utf-8");
text.setText(str2.toString());
is.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
从上面的代码中可以看出:openFileOutput / openFileInput 的用法与之前的SharedPreferences 的用法有很大的相似性,下面简单说一下两者的异同:
SharedPreferences对象的创建:
SharedPreferences sp = getSharedPreferences("file",Contex.MODE_PRIVATE);
getSharedPreferences方法的第一个参数是指定要保存在手机内存中的文件名(不包括扩展名,扩展名为xml),第二个参数是表示SharedPreferences对象在创建XML文件时设置的文件属性;
Context.MODE_PRIVATE = 0 (默认),代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容
Context.MODE_APPEND = 32768
Context.MODE_WORLD_READABLE = 1
Context.MODE_WORLD_WRITEABLE = 2
openFileOutput 方法是如何返回一个OutputStream对象的:
OutputStream os = openFileOutput("file.xml",Contex.MODE_PRIVATE);
openFileOutput 的第一个参数指定的文件名带有扩展名,第二个参数与getSharedPreferences的是一样的;从这两个方法来看,第一个参数只制定了文件名,并未包含文件的路径,因此,
这两个方法只能将文件保存在手机的内存中固定的路径,
对于大文件可能内存不够
:
SharedPreferences 将XML 文件保存在:/data/data/<包名>/shared_prefs
openFileOutput 将文件保存在:/data/data/<包名>/files
Activity还提供了getCacheDir()和getFilesDir()方法:
getCacheDir()方法用于获取:/data/data/<package name>/cache 目录
getFilesDir()方法用于获取:/data/data/<package name>/files 目录。
android 数据持久化——I/O操作的更多相关文章
- Android数据持久化技术 — — —SharedPreferences
SharedPreferences是使用键值对的方式来存储数据. 要想使用SharedPreferences来存储数据,必须获取SharedPreferences对象,获取SharedPreferen ...
- Android数据持久化技术 — — —文件存储
文件保存 package com.example.datastroredtest; import android.app.Activity;import android.os.Bundle;impor ...
- Android 数据存储-文件读写操作
本来已经写了一部分,后来发现这篇博客写的比我的好,就直接引用一下: https://www.cnblogs.com/LiHuiGe8/p/5604725.html
- $《第一行代码:Android》读书笔记——第6章 数据持久化
主要讲述了Android数据持久化的三种方式:文件存储.SharedPreference存储.SQLite数据库存储. (一)文件存储 其实Android中文件存储方式和Java的文件操作类似,就是用 ...
- IOS开发--数据持久化篇之文件存储(一)
前言:个人觉得开发人员最大的悲哀莫过于懂得使用却不明白其中的原理.在代码之前我觉得还是有必要简单阐述下相关的一些知识点. 因为文章或深或浅总有适合的人群.若有朋友发现了其中不正确的观点还望多多指出,不 ...
- 2流高手速成记(之三):SpringBoot整合mybatis/mybatis-plus实现数据持久化
接上回 上一篇我们简单介绍了基于SpringBoot实现简单的Web开发,本节来看Web开发中必不可少的内容--数据持久化 先看项目结构: 1. 创建数据表 打开mysql,打开数据库 test (没 ...
- Android开发学习之路--数据持久化之初体验
上班第一天,虽然工作上处于酱油模式,但是学习上依旧不能拉下,接着学习android开发吧,这里学习数据持久化的 知识. 其实数据持久化就是数据可以保存起来,一般我们保存数据都是以文件,或者数据库的形式 ...
- Android数据存储-通过SharedPreferences实现记住密码的操作
在Android中登陆中,为了实现用户的方便,往往需要根据用户的需要进行记住密码的操作,所以,在Android数据存储中SharedPreferences恰恰可以实现这一点 下面,小编将带领大家通过S ...
- Android数据存储-文件操作
一.预备知识 1.Android中的MVC设计模式 MVC (Model-View-Controller):M是指逻辑模型,V是指视图模型,C则是控制器.一个逻辑模型可以对于多种视图模型,比如一批统计 ...
随机推荐
- (转)设置 UILabel 和 UITextField 的 Padding 或 Insets (理解UIEdgeInsets)
转自http://unmi.cc/uilable-uitextfield-padding-insets 主要是理解下UIEdgeInsets在IOS UI里的意义.靠,这货其实就是间隔,起个名字这么让 ...
- 完美解决IE(IE6/IE7/IE8)不兼容HTML5标签的方法zt
HTML5的语义化标签以及属性,可以让开发者非常方便地实现清晰的web页面布局,加上CSS3的效果渲染,快速建立丰富灵活的web页面显得非常简单. HTML5的新标签元素有: <header&g ...
- SQL Server FileStream优点与不足
LOB优点: 1.保证大对象的事务一致性. 2.备份与还原包括大数据对象,可以对它进行时点恢复. 3.所有数据都可以使用一种存储与查询环境. LOB不足: 1.大型对象在缓存中占非常大的缓存区. 2. ...
- System.DateTime的一些格式
//2008年4月24日 System.DateTime.Now.ToString("D"); //2008-4-24 System.DateTime.Now.To ...
- Windows 7 with SP1简体中文旗舰版(微软MSDN原版)+ 激活密钥
在Windows 7六个版本中,旗舰版和企业版功能性能完全一样,同属诸版本之中的最高版本.现提供Windows 7 with SP1简体中文旗舰版(微软MSDN最新原版)+ 激活密钥如下: 32位版本 ...
- Get Intellisense for .axml files in Visual Studio
原文Get Intellisense for .axml files in Visual Studio So in order to get some intellisense support for ...
- STL中用erase()方法遍历删除元素
STL中的容器按存储方式分为两类,一类是按以数组形式存储的容器(如:vector .deque):另一类是以不连续的节点形式存储的容器(如:list.set.map).在使用erase方法来删除元素时 ...
- openstack 升级设计要求的指导原则
不知道其他软件有没有类似的指导原则. Theory of Upgrade Grenade works under the following theory of upgrade. New code s ...
- at org.apache.jsp.index_jsp._jspInit(index_jsp.java:23)异常解决
部署项目,启动tomcat一切正常.输入项目地址后 tomcat报例如以下错误: java.lang.NullPointerException at org.apache.jsp.index_jsp. ...
- UML的基本图(一)
A class diagram shows a set of classes, interfaces, and collaborations and their relationships. T ...