Android数据持久化之I/O操作详解
发布时间 - 2026-01-11 00:55:50 点击率:次本文实例讲述了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相关内容感兴趣的读者可查看本站专题:《Android文件操作技巧汇总》、《Android数据库操作技巧总结》、《Android编程之activity操作技巧总结》、《Android编程开发之SD卡操作方法汇总》、《Android开发入门与进阶教程》、《Android资源操作技巧汇总》、《Android视图View技巧总结》及《Android控件用法总结》
希望本文所述对大家Android程序设计有所帮助。
# Android
# 数据持久化
# I/O操作
# Android数据持久化之ContentProvider机制详解
# Android数据持久化之读写SD卡中内容的方法详解
# Android数据持久化之File机制分析
# Android数据持久化之Preferences机制详解
# 详解Android开发数据持久化之文件存储(附源码)
# Android仿QQ好友列表分组实现增删改及持久化
# Android持久化技术之SharedPreferences存储实例详解
# Android持久化技术之文件的读取与写入实例详解
# Android SQLite数据库增删改查操作的使用详解
# Android开发之SQLite的使用方法
# Android使用SQLite数据库的简单实例
# Android数据持久化之SQLite数据库用法分析
# 第一个
# 操作技巧
# 这两个
# 第二个
# 扩展名
# 进阶
# 相关内容
# 感兴趣
# 给大家
# 可以看出
# 自带
# 能将
# 更多关于
# 不包括
# 所述
# 该文件
# 程序设计
# 操作方法
# 编程开发
# 大文件
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
zabbix利用python脚本发送报警邮件的方法
Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程
如何在万网开始建站?分步指南解析
Laravel如何发送系统通知?(Notification渠道示例)
rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted
西安专业网站制作公司有哪些,陕西省建行官方网站?
齐河建站公司:营销型网站建设与SEO优化双核驱动策略
Laravel如何处理JSON字段的查询和更新_Laravel JSON列操作与查询技巧
logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?
laravel怎么使用数据库工厂(Factory)生成带有关联模型的数据_laravel Factory生成关联数据方法
Laravel如何编写单元测试和功能测试?(PHPUnit示例)
Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】
怎样使用JSON进行数据交换_它有什么限制
Laravel如何为API生成Swagger或OpenAPI文档
如何在Tomcat中配置并部署网站项目?
Laravel如何处理文件下载请求?(Response示例)
Laravel怎么生成二维码图片_Laravel集成Simple-QrCode扩展包与参数设置【实战】
Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置
如何快速搭建高效香港服务器网站?
黑客如何利用漏洞与弱口令入侵网站服务器?
html5如何实现懒加载图片_ intersectionobserver api用法【教程】
Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】
如何快速搭建虚拟主机网站?新手必看指南
laravel怎么在请求结束后执行任务(Terminable Middleware)_laravel Terminable Middleware请求结束任务执行方法
Python企业级消息系统教程_KafkaRabbitMQ高并发应用
浅析上传头像示例及其注意事项
PHP正则匹配日期和时间(时间戳转换)的实例代码
北京网站制作的公司有哪些,北京白云观官方网站?
Laravel怎么定时执行任务_Laravel任务调度器Schedule配置与Cron设置【教程】
魔方云NAT建站如何实现端口转发?
免费视频制作网站,更新又快又好的免费电影网站?
JavaScript如何实现倒计时_时间函数如何精确控制
在Oracle关闭情况下如何修改spfile的参数
成都网站制作公司哪家好,四川省职工服务网是做什么用?
如何在 React 中条件性地遍历数组并渲染元素
Linux安全能力提升路径_长期防护思维说明【指导】
教你用AI润色文章,让你的文字表达更专业
Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】
详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】
如何快速查询网址的建站时间与历史轨迹?
高防服务器:AI智能防御DDoS攻击与数据安全保障
如何将凡科建站内容保存为本地文件?
JavaScript模板引擎Template.js使用详解
如何在宝塔面板中创建新站点?
如何快速搭建FTP站点实现文件共享?
mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?
iOS发送验证码倒计时应用
黑客入侵网站服务器的常见手法有哪些?
Laravel怎么使用Intervention Image库处理图片上传和缩放

