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

相关文章

Android实现悬浮按钮功能

《Android实现悬浮按钮功能》在很多场景中,我们希望在应用或系统任意界面上都能看到一个小的“悬浮按钮”(FloatingButton),用来快速启动工具、展示未读信息或快捷操作,所以本文给大家介绍... 目录一、项目概述二、相关技术知识三、实现思路四、整合代码4.1 Java 代码(MainActivi

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字

Android Mainline基础简介

《AndroidMainline基础简介》AndroidMainline是通过模块化更新Android核心组件的框架,可能提高安全性,本文给大家介绍AndroidMainline基础简介,感兴趣的朋... 目录关键要点什么是 android Mainline?Android Mainline 的工作原理关键

如何解决idea的Module:‘:app‘platform‘android-32‘not found.问题

《如何解决idea的Module:‘:app‘platform‘android-32‘notfound.问题》:本文主要介绍如何解决idea的Module:‘:app‘platform‘andr... 目录idea的Module:‘:app‘pwww.chinasem.cnlatform‘android-32

SpringBoot集成Milvus实现数据增删改查功能

《SpringBoot集成Milvus实现数据增删改查功能》milvus支持的语言比较多,支持python,Java,Go,node等开发语言,本文主要介绍如何使用Java语言,采用springboo... 目录1、Milvus基本概念2、添加maven依赖3、配置yml文件4、创建MilvusClient

SpringValidation数据校验之约束注解与分组校验方式

《SpringValidation数据校验之约束注解与分组校验方式》本文将深入探讨SpringValidation的核心功能,帮助开发者掌握约束注解的使用技巧和分组校验的高级应用,从而构建更加健壮和可... 目录引言一、Spring Validation基础架构1.1 jsR-380标准与Spring整合1

Python 中的 with open文件操作的最佳实践

《Python中的withopen文件操作的最佳实践》在Python中,withopen()提供了一个简洁而安全的方式来处理文件操作,它不仅能确保文件在操作完成后自动关闭,还能处理文件操作中的异... 目录什么是 with open()?为什么使用 with open()?使用 with open() 进行

Android实现打开本地pdf文件的两种方式

《Android实现打开本地pdf文件的两种方式》在现代应用中,PDF格式因其跨平台、稳定性好、展示内容一致等特点,在Android平台上,如何高效地打开本地PDF文件,不仅关系到用户体验,也直接影响... 目录一、项目概述二、相关知识2.1 PDF文件基本概述2.2 android 文件访问与存储权限2.

MySQL 中查询 VARCHAR 类型 JSON 数据的问题记录

《MySQL中查询VARCHAR类型JSON数据的问题记录》在数据库设计中,有时我们会将JSON数据存储在VARCHAR或TEXT类型字段中,本文将详细介绍如何在MySQL中有效查询存储为V... 目录一、问题背景二、mysql jsON 函数2.1 常用 JSON 函数三、查询示例3.1 基本查询3.2

Spring LDAP目录服务的使用示例

《SpringLDAP目录服务的使用示例》本文主要介绍了SpringLDAP目录服务的使用示例... 目录引言一、Spring LDAP基础二、LdapTemplate详解三、LDAP对象映射四、基本LDAP操作4.1 查询操作4.2 添加操作4.3 修改操作4.4 删除操作五、认证与授权六、高级特性与最佳