Android 对data/data/(your packagename)目录下的数据读写、删除操作

2024-04-17 06:48

本文主要是介绍Android 对data/data/(your packagename)目录下的数据读写、删除操作,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、数据存储

App自身的数据存储在/data/data/packagename/ ,目录下,大致结构如下图

这里写图片描述

Activity提供了getCacheDir()和getFilesDir()方法:
getCacheDir().getAbsolutePath()方法用于获取/data/data/packagename/cache目录

getFilesDir().getAbsolutePath()方法用于获取/data/data/packagename/files目录

getFilesDir().getParent()方法用于获取/data/data/packagename目录

1、数据存储
Activity提供了openFileOutput()方法可以用于把数据输出到文件中,文件的输出目录在/data/data/packagename/files中

try {
FileOutputStream os = openFileOutput("tongsiw.txt",MODE_PRIVATE);
os.write("哈哈哈哈".getBytes());
os.close();
} catch (IOException e) {e.printStackTrace();
}

输出目录如图
这里写图片描述

openFileOutput()方法的第一参数用于指定文件名称,第二参数用于指定操作模式,有四种模式,分别为:
Context.MODE_PRIVATE
Context.MODE_APPEND
Context.MODE_WORLD_READABLE
Context.MODE_WORLD_WRITEABLE

Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中,可以使用Context.MODE_APPEND。

Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件。

Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件。

MODE_WORLD_READABLE:表示该文件可以被其他应用读取;

MODE_WORLD_WRITEABLE:表示该文件可以被其他应用写入。

另外操作模式可以叠加,如:

FileOutputStream  os =  openFileOutput("tongsiw.txt",MODE_PRIVATE+MODE_APPEND);

2、文件读写操作

Activity提供了openFileInput()方法打开/data/data/packagename/files中的文件

  FileInputStream inputStream = openFileInput("tongsiw.txt");ByteArrayOutputStream outputStream = new  ByteArrayOutputStream();byte[] buffer = new byte[1024];int len = -1;while ((len = inputStream.read(buffer)) != -1) {outputStream.write(buffer, 0, len);}inputStream.close();outputStream.close();String s = outputStream.toString();Toast.makeText(this, s, 0).show();} catch (IOException e) {e.printStackTrace();}

二、数据删除

递归删除

/**递归删除*/public  void deleteFolder(File file) {if (!file.exists())return;if (file.isDirectory()) {File files[] = file.listFiles();for (int i = 0; i < files.length; i++) {deleteFolder(files[i]);}}file.delete();}

删除操作

  //删除配置文件目录shared_prefs;//路径:/data/data/packagenameString path = getFilesDir().getParent();deleteFolder(new File(path + "/shared_prefs"));//清空缓存目录;//路径 /data/data/packagename/cacheFile file_cache = getCacheDir();deleteFolder(file_cache);//清空file目录;//路径 /data/data/packagename/filesFile file_file = getFilesDir();deleteFolder(file_file);

就到这了

这篇关于Android 对data/data/(your packagename)目录下的数据读写、删除操作的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/911076

相关文章

浅析如何保证MySQL与Redis数据一致性

《浅析如何保证MySQL与Redis数据一致性》在互联网应用中,MySQL作为持久化存储引擎,Redis作为高性能缓存层,两者的组合能有效提升系统性能,下面我们来看看如何保证两者的数据一致性吧... 目录一、数据不一致性的根源1.1 典型不一致场景1.2 关键矛盾点二、一致性保障策略2.1 基础策略:更新数

Oracle 数据库数据操作如何精通 INSERT, UPDATE, DELETE

《Oracle数据库数据操作如何精通INSERT,UPDATE,DELETE》在Oracle数据库中,对表内数据进行增加、修改和删除操作是通过数据操作语言来完成的,下面给大家介绍Oracle数... 目录思维导图一、插入数据 (INSERT)1.1 插入单行数据,指定所有列的值语法:1.2 插入单行数据,指

Android DataBinding 与 MVVM使用详解

《AndroidDataBinding与MVVM使用详解》本文介绍AndroidDataBinding库,其通过绑定UI组件与数据源实现自动更新,支持双向绑定和逻辑运算,减少模板代码,结合MV... 目录一、DataBinding 核心概念二、配置与基础使用1. 启用 DataBinding 2. 基础布局

Android ViewBinding使用流程

《AndroidViewBinding使用流程》AndroidViewBinding是Jetpack组件,替代findViewById,提供类型安全、空安全和编译时检查,代码简洁且性能优化,相比Da... 目录一、核心概念二、ViewBinding优点三、使用流程1. 启用 ViewBinding (模块级

Java实现删除文件中的指定内容

《Java实现删除文件中的指定内容》在日常开发中,经常需要对文本文件进行批量处理,其中,删除文件中指定内容是最常见的需求之一,下面我们就来看看如何使用java实现删除文件中的指定内容吧... 目录1. 项目背景详细介绍2. 项目需求详细介绍2.1 功能需求2.2 非功能需求3. 相关技术详细介绍3.1 Ja

SQL Server修改数据库名及物理数据文件名操作步骤

《SQLServer修改数据库名及物理数据文件名操作步骤》在SQLServer中重命名数据库是一个常见的操作,但需要确保用户具有足够的权限来执行此操作,:本文主要介绍SQLServer修改数据... 目录一、背景介绍二、操作步骤2.1 设置为单用户模式(断开连接)2.2 修改数据库名称2.3 查找逻辑文件名

canal实现mysql数据同步的详细过程

《canal实现mysql数据同步的详细过程》:本文主要介绍canal实现mysql数据同步的详细过程,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的... 目录1、canal下载2、mysql同步用户创建和授权3、canal admin安装和启动4、canal

SQL中JOIN操作的条件使用总结与实践

《SQL中JOIN操作的条件使用总结与实践》在SQL查询中,JOIN操作是多表关联的核心工具,本文将从原理,场景和最佳实践三个方面总结JOIN条件的使用规则,希望可以帮助开发者精准控制查询逻辑... 目录一、ON与WHERE的本质区别二、场景化条件使用规则三、最佳实践建议1.优先使用ON条件2.WHERE用

使用SpringBoot整合Sharding Sphere实现数据脱敏的示例

《使用SpringBoot整合ShardingSphere实现数据脱敏的示例》ApacheShardingSphere数据脱敏模块,通过SQL拦截与改写实现敏感信息加密存储,解决手动处理繁琐及系统改... 目录痛点一:痛点二:脱敏配置Quick Start——Spring 显示配置:1.引入依赖2.创建脱敏

Redis过期删除机制与内存淘汰策略的解析指南

《Redis过期删除机制与内存淘汰策略的解析指南》在使用Redis构建缓存系统时,很多开发者只设置了EXPIRE但却忽略了背后Redis的过期删除机制与内存淘汰策略,下面小编就来和大家详细介绍一下... 目录1、简述2、Redis http://www.chinasem.cn的过期删除策略(Key Expir