首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何写入android的外部存储,即使在应用程序卸载后仍会存在?

要实现在Android的外部存储中写入数据,并且即使在应用程序卸载后仍然存在,可以通过以下步骤进行操作:

  1. 获取外部存储的读写权限:在AndroidManifest.xml文件中添加以下权限声明:
代码语言:txt
复制
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

同时,还需要在运行时动态请求权限,确保用户授予了读写外部存储的权限。

  1. 确定外部存储的路径:可以使用Environment.getExternalStorageDirectory()方法获取外部存储的根目录路径。例如:
代码语言:txt
复制
File externalStorageDir = Environment.getExternalStorageDirectory();
  1. 创建文件并写入数据:可以使用Java的文件操作类(如FileOutputStream、BufferedWriter等)来创建文件并写入数据。例如:
代码语言:txt
复制
File file = new File(externalStorageDir, "data.txt");
try {
    FileOutputStream fos = new FileOutputStream(file);
    BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(fos));
    writer.write("Hello, World!");
    writer.close();
} catch (IOException e) {
    e.printStackTrace();
}
  1. 设置文件的存储属性:为了确保文件在应用程序卸载后仍然存在,可以将文件存储在外部存储的特定目录中,例如使用getExternalFilesDir()方法获取应用程序的私有外部存储目录,并在该目录下创建文件。这样,在应用程序卸载时,该目录及其内容不会被删除。例如:
代码语言:txt
复制
File externalFilesDir = getExternalFilesDir(null);
File file = new File(externalFilesDir, "data.txt");

需要注意的是,尽管文件存储在外部存储中,但在应用程序卸载后,用户仍然可以手动删除该文件。如果需要确保数据的持久性和安全性,可以考虑使用云存储服务,将数据上传到云端进行保存。

以上是关于如何在Android的外部存储中写入数据并在应用程序卸载后仍然存在的步骤。对于更多关于Android开发的信息,可以参考腾讯云的移动开发相关产品和文档:

  • 腾讯云移动开发产品:https://cloud.tencent.com/product/mobile
  • 腾讯云移动开发文档:https://cloud.tencent.com/document/product/876
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android教程-保存数据-保存文件

本节课描述了如何使用 File APIAndroid文件系统中读写文件. File 对象适用于用一种没有跳跃从开始一直到结尾方式读写大量数据....一些设备将永久存储空间分成“内部”和“外部”分区, 因此即使没有可移除存储介质,也总会两个存储空间,而不管外部存储是不是可移除,API行为都是一样....当用户卸载应用,系统会删除你应用程序外部私有路径下所有文件 .例如,你应用下载额外资源或者临时媒体文件 ....每一个通过此方法创建路径都被添加到了一个所有你应用程序外部存储文件父路径 , 它们会在用户卸载应用时被系统删除掉 ....); 注意: 当用户卸载应用时,Android系统会删除下面这些东西 : 所有你保存在外部存储文件 所有你使用 getExternalFilesDir() 保存在内部存储文件.

2.6K30

【专业技术】Android数据保存之文件保存

Android中以文件形式把数据保存到磁盘上与其他平台基本上都是类似的,本篇文章将会介绍如何利用java.io.FilesAPI函数进行文件读写操作。...内部存储外部存储是有区别的,利用时候需要注意他们各自特点: 内部存储: 始终存在可用; 保存文件默认只能被保存文件app访问,各个应用之间不可以彼此访问,只能访问自己保存文件。...外部存储: 不一定存在,比如有的手机出厂是只有内部存储,没有外部存储,用户自己又没有安装micro-SD卡,这时外部存储是不可用; 读写完全开放,所以你保存数据可能会被用户和可其它程序读取; 卸载应用时只会删除通过...android:installLocation属性AndroidManifest.xml文件中,这样你应用程序可以安装在外部存储器。...在用户卸载应用时候Android系统会删除你一下文件: 1、所有保存在内部存储文件; 2、所有保存在getExternalFilesDir()目录外部存储文件; 注意:你需要定期手动清理通过

2.1K60

笔记(十)——安卓存储知识

用于存储Andoid设备操作系统和应用程序存储介质,Android设备中Android系统和应用程序(APK文件)都是存在内部存储。例如手机/system/目录、/data/目录等。...storage或mnt文件夹即为外部存储区,外部存储文件是可以被用户或者其他应用程序修改,有两种类型文件(或者目录): >1.公共文件Public files:文件是可以被自由访问,且文件数据对其他应用或者用户来说都是有意义...外部存储应用私有文件价值,在于卸载之后这些文件也会被删除。类似于内部存储,只是和内部储存不同是这个部分可以给用户和其他应用访问,所以才叫外部储存私有部分嘛。...内部存储外部存储并不是按是否存储于SD卡来区分,内部存储data文件下且不可被访问操作,外部存储storage或者mnt文件夹下是可以被访问操作,****这些就是区别。...内部存储外部存储私有文件(也就是app包名下)都是属于该app,app卸载了他们也就跟着删除了。 ?

1.2K31

Android 分区存储常见问题解答

仍会Android 10 设备上生效。 Q: android:preserveLegacyStorage 是如何工作?...A: 如果您应用安装在 Android 10 设备上,并设置了 android:requestLegacyStorage="true",那设备升级至 Android 11 ,此设置会继续保持旧存储访问方式...⚠️ 如果应用被卸载,或者是第一次 Android 11 上安装,那么就无法使用旧存储访问方式。此标记仅适用于进一步帮助设备从传统存储升级到分区存储。...这将使用户可以保留这些数据,即使卸载应用时亦是如此。 △ 上图为拥有 "脆弱用户数据" 应用卸载对话框。对话框中包含了一个复选框,用于指示系统是否应该保留应用数据。..." android:maxSdkVersion="29" /> 如要访问其他应用添加文档,或者应用卸载重装访问其卸载前添加文档,就需要通过 ACTION_OPEN_DOCUMENT Intent

1K10

Android SDK上手指南:知识测试

为了检验我们学习效果,今天文章中请大家接受一份结业测试、看看自己是否掌握了前面提到各项知识。 问题一 我们Java类被保存在以下哪个Android应用程序目录之下?...应用程序当中声明activity。 设定最低API支持级别。 定义按钮被点击执行何种事件。 列出应用程序运行所需要权限。...保存原始数据项键值对。 表当中以行和列方式保存结构化数据。 检索互联网数据。 将数据保存在用户设备上外部文件中。 问题十一 应用程序在读取并写入文件时,我们需要如何处理I/O错误?...将我们I/O代码放置一个独立类当中。 尝试并获取与I/O代码相关数据块。 向用户输出警告信息。 问题十二 尝试向外部存储机制进行写入之前,我们应用程序不需要执行以下哪个步骤?...检查外部存储机制是否可用。 检查外部存储机制写入访问。 使用清单内用于向外部存储写入操作权限。 使用警告对话框,要求用户为数据写入提供权限。

86620

Jelly Bean 中使用应用加密

安装文件哈希值和原始(未加密) APK 完全相同,因此我们可以得出结论,APK 安装是使用我们提供加密参数(算法、密钥和 IV)进行解密。让我们看看这是如何实现。...应用程序包(APKs) Android 上是公共可读,这使得即使是在生产设备中提取应用程序也相对容易。...当时(2010年5月),大多数Android 设备都配备有有限内部存储空间和相当大(几GB)外部存储设备,通常采用 micro SD 卡形式。...为了使文件共享更容易,外部存储使用 FAT 文件系统进行了格式化,该文件系统缺少文件权限。 因此,任何人(任何应用程序)都可以读取和写入 SD 卡上文件。...那就是如何存储和使用应用程序,剩下是找出实际加密算法和密钥。

1K80

解决Android 5.1限制外置SD卡写入权限问题

Android开发者网站外部存储技术信息”文档中描述道 : WRITE_EXTERNAL_STORAGE只为设备上主要外部存储授予写权限,应用程序无法将数据写入二级外部存储设备,除非综合权限指定了应用程序包目录...这目前只影响双存储设备,如果你设备有内部存储空间,即通常所说机身存储,那么你SD卡就是一个二级外部存储设备。...Android 4.4中,如果你同时使用了机身存储和SD卡, 那么应用程序将无法SD卡中创建、修改、删除数据。...Google表示, 这样做目的是,,通过这种方式进行限制,系统可以应用程序卸载清除遗留文件。 破解方法其实很简单,就是添加外置存储写入权限。前提是手机必须Root。...以上这篇解决Android 5.1限制外置SD卡写入权限问题就是小编分享给大家全部内容了,希望能给大家一个参考。

3.3K20

Android 11 快来了,IO 性能下降了 SDCardFS Vs FUSE

但是,至少与内部闪存可以读取/写入数据速度相比,用于存储应用程序SD卡通常无法提供出色用户体验。...但是,即使不包含SD卡插槽设备上,/ sdcard标签仍用于指向实际内部存储芯片。更令人困惑事实是,既使用物理SD卡又使用大容量存储芯片进行存储设备通常会根据SD卡来命名其分区。...因此,即使实际上将microSD卡视为外部存储设备,命名约定也导致“ SDCard”在任何实际使用物理卡情况下都存在很长时间。...许多应用程序会简单地使用应用程序名称创建一个文件夹并将其文件存储该文件夹中。 当时几乎所有的应用程序都需要WRITE_EXTERNAL_STORAGE权限才能将其应用程序文件写入外部存储。...实现内核内解决方案所面临最大挑战是如何将包名称映射到应用程序ID,这对于应用程序包在不需要任何权限情况下访问外部存储中自己数据是必需

3.7K10

一篇文章彻底明白Android文件存储

外部存储(External Storage/Shared Storage) 3.1 定义 早期Android设备存储空间较小,有一个内置(build-in)存储空间,即内部存储,另外还有一个可以移除存储介质...] 外部存储 示意图 私有目录(private):storage/emulated/0/Android/ 每个应用独占以包名命名私有文件夹 应用卸载时被删除 对MediaScanner不可见(例外:...多媒体文件夹 API 21) 特点 适用场景:非私密数据,需要随应用卸载删除 公共目录(public):外部存储中除了私有目录外其他空间 所有应用共享 应用卸载时不会被删除 对MediaScanner...,低版本中数组只会返回一个元素,指向内置外置存储路径 版本变更:外部存储多媒体文件夹——Context.getExternalMediaDirs()(API 21):对MediaScanner可见...清除应用数据选项(系统设置或手机管家中): 清除缓存:清除应用内部存储缓存文件夹 与 外部存储缓存文件夹; 清除数据:清除应用内部存储外部存储空间私有目录; 4.2 android:installLocation

4.6K00

Android 获取系统各个目录方法

Android开发过程中,我们经常会对文件系统进行操作——存放、释放我们应用数据。Android系统中提供了各种功能文件目录,每个目录都有相应特点和功能。...这篇文章主要介绍和记录一下实际开发过程中常用各个文件目录。 (1)内部存储(Internal Storage) 内部存储是App私有目录,当一个应用卸载之后,内部存储这些文件也被删除。...外部存储文件是可以被用户或者其他应用程序修改外部存储目录实际上也分为两种: -公共文件(目录) 文件是可以被自由访问,且文件数据对其他应用或者用户来说都是由 意义,当应用被卸载之后,其卸载前创建文件仍然保留...().getAbsolutePath()); -私有文件 由于是外部存储原因即使是这种类型文件也能被其他程序访问,只不过一个应用私有的文件对其他应用其实是没有访问价值(恶意程序除外)。...外部存储上,应用私有文件价值在于卸载之后,这些文件也会被删除。类似于内部存储

6.1K10

如何在Mac上卸载Steam

但是,完成游戏,您认为不再使用此应用程序,从Mac上卸载Steam是个好主意。 删除Steam可使您应用程序列表保持整洁,此外,它还会释放硬盘驱动器上大量空间。...Steam将卸载所选游戏。 即使删除了游戏,您游戏仍会出现在您媒体库中。当您想重玩游戏时,只需再次下载即可。...您有许多理由要这样做,而Mac存储空间不足是主要原因。无论如何,您需要经历两个单独过程才能永久摆脱Steam。...如何在没有SteamMac上卸载Steam游戏 如果您或其他人已经Mac上卸载了Steam,但游戏仍然存在,该怎么办?没有Steam可以卸载Steam游戏吗? 幸运是,有。...您确实可以删除Steam游戏,而无需Mac上安装Steam应用。这是可能,因为该应用程序将您游戏存储它们自己独立文件夹中。 这样,您可以删除游戏文件夹,游戏将消失。

9.9K51

笔记——安卓存储知识(十)

用于存储Andoid设备操作系统和应用程序存储介质,Android设备中Android系统和应用程序(APK文件)都是存在内部存储。例如手机/system/目录、/data/目录等。...外部存储上,应用私有文件价值在于卸载之后,这些文件也会被删除。类似于内部存储,只是和内部储存不同是这个部分可以给用户和其他应用访问。所以才叫外部储存私有部分嘛。...内部存储外部存储并不是按是否存储于SD卡来区分,内部存储data文件下,外部存储storage或者mnt文件夹下,这就是区别。...内部存储外部存储私有文件(也就是app包名下)都是属于该app,app卸载了他们也就跟着删除了。 ?...优秀数据库框架:GreenDao、OrmLite、Litepal等 3、android应用程序(进程)内存(RAM)一般限制16M,也有的是24M(早期Android系统G1,就是只有16M),根据开发人员定义也可以扩展

68830

Android 10适配要点,作用域存储

距离Android 10系统正式发布已经过去大半年左右时间了,你应用程序已经对它进行适配了吗? Android 10众多行为变更当中,有一点是非常值得引起我们重视,那就是作用域存储。...第一,存储SD卡文件不会计入到应用程序占用空间当中,也就是说即使SD卡存放了1G文件,你应用程序设置中显示占用空间仍然可能只有几十K。...第二,存储SD卡文件,即使应用程序卸载了,这些文件仍然会被保留下来,这有助于实现一些需要数据被永久保留功能。 然而,这些“好处”真的是好处吗?...另外,存储SD卡上文件属于公有文件,所有的应用程序都有权随意访问,这也对数据安全性带来了很大挑战。 为了解决上述问题,GoogleAndroid 10当中加入了作用域存储功能。...但同时,刚才提到那两个“好处”也就不存在了。这个目录中文件会被计入到应用程序占用空间当中,同时也会随着应用程序卸载而被删除。 那么有些朋友可能会问了,我就是需要访问其他目录该怎么办呢?

2.1K10

Android 11 中存储机制更新

Android 10 引入了对外部存储权限更改,旨在更好地保护用户数据以及降低应用存储空间。Android 11 开发者预览版里加入了更多改进,以帮助开发者更好地适应这些权限修改。...这些应用可能会在磁盘中存储大量文件,即使应用被卸载了还会依然存在。另外,这些应用还可能会读取其他应用一些敏感文件数据。... Android 10 中,我们调整了存储权限工作方式,仅为应用提供其所需访问权限。这也是鼓励应用在指定目录下进行文件存储以限制文件混乱。当应用被卸载,这些相关目录也会被删除。...当应用被卸载,除非用户需要,否则应用之前所创建文件也不应该保留在设备上; 保护应用数据: 当一个应用将它所属文件写入外部存储时,这些文件是不应该被其他应用所访问; 保护用户数据: 当用户下载了一些文件...但是获得这个权限应用还是无法访问其他应用应用专属目录 (app-specific directory),无论是外部存储还是内部存储。 我们希望继续允许一些确实有广泛访问外部存储文件需求应用。

2.9K11

【Flutter 实战】文件系统目录

Android上,此函数抛出[UnsupportedError]异常,没有等效项路径存在。...iOS上,此功能会引发[UnsupportedError]异常,因为无法应用程序沙箱外部访问。 Android上,对应getExternalFilesDir(null)。...由于此功能仅在Android上可用,因此应在发出此函数调用之前确定当前操作系统。iOS上,此功能会抛出UnsupportedError,因为这是不可能应用程序沙箱外部访问。...由于此功能仅在Android上可用,因此应在发出此函数调用之前确定当前操作系统。iOS上,此功能会抛出UnsupportedError,因为这是不可能应用程序沙箱外部访问。...Documents:应用程序数据文件写入到这个目录下。这个目录用于存储用户数据。保存应用程序重要数据文件和用户数据文件等。

2.7K10

app自动化面试题

只有需要在多个应用程序间共享数据时才需要内容提供者。例如:通讯录数据被多个应用程序使用,且必须存储一个内容提供者中。它好处:统一数据访问方式。...服务运行不依赖于任何用户界面,即使程序被切换到后台,或者用户打开了另一个应用程序,服务扔然能够保持正常运行,不过服务并不是运行在一个独立进程当中,而是依赖于创建服务时所在应用程序进程。...当某个应用程序进程被杀掉,所有依赖于该进程服务也会停止运行(正在听音乐,然后把音乐程序退出) 5 App测试中ios和Android有哪些区别呢?...Back键反馈是否正确;应用数据从内存移动到SD卡能否正常运行等; 5.安装卸载测试:Android下载和安装平台和工具和渠道比较多,ios主要有app store,iTunes和testflight...Appium是一个免费分发开源移动应用UI测试框架,可以对android及ios系统app进行自动化测试 12 解释移动应用程序如何查找DOM元素 要找到DOM元素,使用“UIAutomateviewer

1.4K20

详解Android10分区存储机制(Scoped Storage)适配教程

沙盒机制是一种安全机制,用于防止应用读取其他应用数据。 每个应用程序都有自己存储空间。 应用程序不能翻过自己目录,去访问公共目录。 应用程序请求数据都要通过权限检测,不符合要求不会被放行。...以 Android 10(API 级别 29)及更高版本为目标平台应用在默认情况下被赋予了对外部存储设备分区访问权限(即分区存储), 对外部存储文件访问方式重新设计,便于用户更好管理外部存储文件。...影响范围: Android 10上运行应用: 1.targetSdkVersion <= 28,不受影响 2.如果targetSdkVersion = 29,默认情况应用外部存储可见性将被过滤...类型 位置 访问应用自己生成文件 访问其他应用生成文件 访问方法 卸载应用是否删除文件 外部存储 Photo/ Video/ Audio/ 无需权限 需要权限READ_EXTERNAL_STORAGE.... // 剩下步骤是用Java IO或者其他IO库来写入数据 5. 共享媒体集合存储 共享媒体集合存储中保存媒体文件时,需要根据文件类型选择MediaStore。

3.1K32

Android文件系统整理

总揽 Android文件系统从大方面分为以下几类: 1、内部存储 2、外部存储 3、SharedPreferences 4、数据库 PS:SharedPreferences和数据库我们另外篇幅中详细介绍...内部存储空间 内部存储空间是 App 私有的存储数据存储空间,系统会阻止其他应用对这部分数据访问,并且 Android 10(API 级别 29)及更高版本中,系统会对这些位置进行加密。...1、App 私有目录 App 私有目录指其他应用可以访问当前应用该目录下数据,应用卸载也会随之删除。 公共目录:外部可以自由访问,应用删除这部分存储数据不会删除。...具有多个用户设备上(如 UserManager 所述),每个用户都有自己隔离共享存储应用程序只能访问它们正在运行用户共享存储。...除 /Android/data/、/sdcard/Android 和 /sdcard/Android 大多数子目录外,对所有内部存储目录⁠写入权限。

77530
领券