注意点 使用内部存储应用卸载后,存储的文件自动删除 使用外部存储要申请权限,并且要判断外部存储是否可用 实例 public static String getFilePath(Context context...File cacheDir = context.getCacheDir(); 特点 应用内部存储空间 数据文件私有 不需要申请权限 当应用被卸载的时候,目录下的文件会被删除 存储小文件 需要注意的是,...SD卡)的时候,才可以在卸载应用的同时,自动删除该目录下的文件 如果是之前的物理存储(物理SD卡)则不会自动删除该目录,及目录下的文件 context.getFilesDir File filesDir...= context.getFilesDir(); 特点 应用内部存储空间 数据文件私有 不需要申请权限 当应用被卸载的时候,目录下的文件会被删除 当应用被移动到外部存储设备的时候,文件的绝对路径也是变化的...)) 当应用被卸载的时候,目录下的文件会被删除 当应用被卸载的时候,目录下的文件会被删除,但是这里和getFilesDir()还有不同之处: 只有手机系统使用的是虚拟外部存储(虚拟SD卡)的时候,才可以在卸载应用的同时
1.定义 内部存储:内部存储位于Android手机系统的data/data/这个目录下,内部存储是私有的,主要用于存储系统和应用程序的某些数据,对于其他应用程序来说是不可见的,并且会随着应用程序的卸载而被删除...外部私有存储位于/storage/emulated/0/Android/data/包名这个目录下,它和内部存储一样是私有的,并且其他应用程序是无法访问的,会随着应用程序的卸载而被清除。 ...它对所有的应用程序都是可见的,前提是该应用程序有外部存储权限,而且外部公有存储中的数据不会随应用程序的卸载而被删除。 2.使用哪些api进行访问? ...内部存储: context.getFilesDir() context.getCacheDir() // data/data//cache 外部私有存储: context.getExternalFilesDir...注:在Android10之后,不能再使用外部公有存储下的两个方法了,应用程序只能访问自己的外部私有目录,所以Android10之后尽量使用外部私有存储下的两个方法。
开发应用,处理本地数据存取时,可能会遇到这些问题: 需要判断sd卡是否可用: 占用过多机身内部存储,容易招致用户反感,优先将数据存放于sd卡; 应用数据存放路径,同其他应用应该保持一致,应用卸载时,...清除数据: 2.1 标新立异在sd卡根目录建一个目录,招致用户反感 2.2 用户卸载应用后,残留目录或者数据在用户机器上,招致用户反感 需要判断两者的可用空间: sd卡存在时,可用空间反而小于机身内部存储...在这些$appDataDir目录下的数据,在app卸载之后,会被系统删除,我们应将应用的数据放于这两个目录中。...,文件会被删除 外部存储: Context.getExternalCacheDir() 外部存储没有实时监控,当空间不足时,文件不会实时被删除,可能返回空对象 示例: Context.getCacheDir...* 在外部存储中,这两个文件夹其他应用程序也可访问。 * 在外部存储中, $filesDir 中的媒体文件,不会被当做媒体扫描出来,加到媒体库中。 4.
当应用被卸载的时候应用保存的文件会被完全清除掉; 如果你想要保存的文件很安全,不会被用户和其他应用读取到,那么你可以选择内部存储这种方式。...,应用程序对于内部存储默认就有读写文件的权限; 保存到内部存储: 文件存储需要创建文件,当把文件保存到内部存储时你可以获取内部存储文件通过下面的两个方法: 1、File getFilesDir ();...返回一个文件目录,这个目录存放的是应用程序缓存文件,当系统空间不足时这部分文件首先会被删除。...当你想要在内部存储写入一个文件时,首先要创建一个文件,可以通过File的构造器,传入上面两个方法获取的路径作为参数,很方便的就能创建一个文件,例如: File file =newFile(context.getFilesDir...,但是对于外部存储的文件你需要分两类对待: public files: 这类文件是完全开发的,对于其他应用程序或者用户都可以访问,当你的应用被卸载的时候这部分文件也不会被删除,比如你的拍照程序,用户拍的照片不会因为用户卸载了应用而删除照片
当用户卸载你的应用时,系统会从内部存储中移除你的应用的所有文件. 当你想要确保不管是你的用户还是其它应用都能访问你的文件,内部存储是最合适的....你的应用程序总是有在其内部存储目录中读写文件的权限....在内部存储中保存一个文件 ---- 当要在一个内部存储中保存一个文件时,你可以通过调用下面两个方法的其中之一,来获取相应的目录 文件 : getFilesDir() 返回一个表示你应用的内部路径的...当用户卸载你的应用,系统会删除你的应用程序外部私有路径下的所有文件 .例如,你的应用下载的额外的资源或者临时媒体文件 ....每一个通过此方法创建路径都被添加到了一个所有你的应用程序的外部存储文件的父路径 , 它们会在用户卸载你的应用时被系统删除掉 .
这篇文章主要介绍和记录一下实际开发过程中常用的各个文件目录。 (1)内部存储(Internal Storage) 内部存储是App的私有目录,当一个应用卸载之后,内部存储中的这些文件也被删除。...Shared Preferences和SQLite数据库文件都是存储在内部存储空间上的。...().getAbsolutePath()) -context.getCacheDir() 应用程序的缓存目录,该目录内的文件在设备内存不足时会优先被删除掉,所以存放在这里的文件是没有任何保障的,可能会随时丢掉...外部存储中的文件是可以被用户或者其他应用程序修改的,外部存储中的目录实际上也分为两种: -公共文件(目录) 文件是可以被自由访问,且文件的数据对其他应用或者用户来说都是由 意义的,当应用被卸载之后,其卸载前创建的文件仍然保留...外部存储上,应用私有文件的价值在于卸载之后,这些文件也会被删除。类似于内部存储。
1、File cacheDir = context.getCacheDir(); 应用内部存储空间(数据文件私有)文件存储到这个路径下,不需要申请权限,当应用被卸载的时候,目录下的文件会被删除。...官方建议是,超过1MB的文件,建议存储到getExternalCacheDir()目录下 2、File filesDir = context.getFilesDir(); 应用内部存储空间(数据文件私有...只有手机系统使用的是虚拟外部存储(虚拟SD卡,现在绝大多数的手机,都不用外挂物理SD卡了)的时候, 才可以在卸载应用的同时,自动删除该目录下的文件,如果是之前的物理存储(物理SD卡)则不会自动删除该目录...(数据文件私有,系统媒体文件无法访问(例如存了一个MP3文件,通过系统的文件夹管理系统,无法找到)), 当应用被卸载的时候,目录下的文件会被删除,但是这里和getFilesDir()还有不同之处:...只有手机系统使用的是虚拟外部存储(虚拟SD卡)的时候, 才可以在卸载应用的同时,自动删除该目录下的文件,如果是之前的物理存储(物理SD卡)则不会自动删除该目录,及目录下的文件 在使用的时候,
如果系统运行时内部存储不够了的话,可能会删除某些缓存文件,而且不会提醒。...Public files是指外存中的公共目录,这些目录对任何应用和用户都可用,其中的文件在应用被卸载的时候是不会被删除的。...Private files是指外存中的应用的私有目录,当应用卸载的时候系统会删除该目录下的文件。...一些内部存储和外部存储的路径的获取方式 Log.e(TAG, "getFilesDir()=" + getFilesDir().getAbsolutePath()); //getFilesDir()=/...(fileName); 当应用被卸载时,系统会删除下面的目录:(1)应用的内部存储;(2)应用使用getExternalFilesDir()方式保存的文件。
内部存储路径/data/data/youPackageName/,在程序安装的时候创建,在卸载的时候被删除。...1. files Context.getFilesDir(),该方法返回/data/data/youPackageName/files的File对象。...www.2cto.com Context.fileList(),返回files下所有的文件名,返回的是String[]对象。...Context.deleteFile(String),删除files下指定名称的文件。...3. custom dir getDir(String name, int mode), 返回/data/data/youPackageName/下的指定名称的文件夹File对象,如果该文件夹不存在则用指定名称创建一个新的文件夹
用于存储Andoid设备的操作系统和应用程序的存储介质,Android设备中的Android系统和应用程序(APK文件)都是存在内部存储区的。例如手机的/system/目录、/data/目录等。...storage或mnt文件夹即为外部存储区,外部存储中的文件是可以被用户或者其他应用程序修改的,有两种类型的文件(或者目录): >1.公共文件Public files:文件是可以被自由访问,且文件的数据对其他应用或者用户来说都是有意义的...,当应用被卸载之后,其卸载前创建的文件仍然保留。...外部存储上,应用私有文件的价值在于卸载之后,这些文件也会被删除。类似于内部存储,只是和内部储存不同的是这个部分可以给用户和其他应用访问。所以才叫外部储存的私有部分嘛。...内部存储和外部存储的私有文件(也就是app包名下的)都是属于该app的,app卸载了他们也就跟着删除了。 ?
外部存储可以通过物理介质提供(如SD卡),也可以通过将内部存储中的一部分封装而成,设备可以有多个外部存储实例。...外部存储对数据提供的保护较少,所以系统不应该存储敏感数据在外部存储上。 特别地,配置和log文件应该存储在内部存储中,这样它们可以被有效地保护。 ...还有多用户或者多外部存储的情况,此文不再讨论。 为了不污染用户的根命名空间,一般不会直接使用这个外部存储的根目录。 ...任何应用私有的文件的应该被放置在 Context.getExternalFilesDir返回的目录下,在应用被卸载的时候,系统会清理的就是这个目录。 ...另一些共享文件应该被放置在 getExternalStoragePublicDirectory(String)返回的目录中。
下面从 Android 和 iOS 平台的角度介绍其文件路径,最后给出路径使用的建议以及使用过程中需要注意的事项。 Android 文件存储 Android 文件存储分为内部存储和外部存储。...内部存储的特点: 安全性,其他应用无法访问这些数据。 当应用卸载的时候,这些数据也会被删除,避免垃圾文件。 不需要申请额外权限。...这里面有一个特殊的目录:Android/data/包名: ? 看到这个目录是不是觉得和内部存储目录非常相似,一个包名代表一个应用程序: ?...此目录的特点: 当应用卸载的时候,这些数据也会被删除,避免垃圾文件。 不需要申请额外权限。 空间大且不会被系统清除,通过 设置 中的 清除数据 可以清除此目录数据。...用户可以直接对文件进行删除、导入操作。 外部存储除了 Android/data/ 目录,还有和此目录同级的目录,特点: 所有应用程序均可访问。 用户可以直接对文件进行删除、导入操作。
如果你想将文件存储于内部存储中,那么文件默认只能被你的应用访问到,且一个应用所创建的所有文件都在和应用包名相同的目录下。也就是说应用创建于内部存储的文件,与这个应用是关联起来的。...当一个应用卸载之后,内部存储中的这些文件也被删除。对于这个内部目录,用户是无法访问的,除非获取root权限。...内部存储空间的获取都需要使用Context,当然Activity中也可以省略 1.1 context.getFileDir() String fileDir = this.getFilesDir().getAbsolutePath...非常适合用于存放app各种伴随app运行周期所需要的文件数据,它既不会因为手机存储空间不足而被清理,也不会因卸载app而遗留数据垃圾,并且它是私有的。...2.外部存储(External Storage/ Shared Storage) 外部存储也需要通过context来获取,同时在app卸载之后,这些文件也会被删除。类似于内部存储.
一、各自的存储特点 1.内部存储 总是可用的 这里的文件默认是只能被你的app所访问的 当用户卸载你的app的时候,系统会把internal里面的相关文件都清除干净 Internal是在你想确保不被用户与其他...当用户卸载你的app时,系统仅仅会删除external根目录(getExternalFilesDir())下的相关文件。...如果我们想缓存图片等比较耗空间的文件,推荐放在getExternalCacheDir()所在的文件下面,这个文件和getCacheDir()很像,都可以放缓存文件,在APP被卸载的时候,都会被系统删除,...() 获取在其中存储内部文件的文件系统目录的绝对路径。...getDir() 在您的内部存储空间内创建(或打开现有的)目录。 deleteFile() 删除保存在内部存储的文件。 fileList() 返回您的应用当前保存的一系列文件。
之前在android游戏开发中就遇到本地数据存储的问题:一般情形之下就将动态数据写入SD中存储,在没有SD卡的手机上就需另作处理了;再有在开发android应用的过程中,总要去调试APP,安装时又想去了解...,一般人是无法更改的 就相当于系统存储是windows的C盘,系统缓存相当于windows的临时文件夹 内部存储就相当于windows的其他盘,android系统中,“/”以及“/system”等目录是用于系统存储的...在Android 2.2之后的版本允许将应用程序安装于SD卡,每一个安装在SD卡的应用程序,都可以在SD卡中的/sdcard/.android_secure 目录里找到名称中有出现它的程序名,和副文件名为...app2ext的原理是,删除data区中的app文件夹,然后在sd卡的ext分区上创建一个app文件,并通过软链接映射到data区。...data文件夹本来是对应手机内部Flash中的一个分区(为了保持术语的准确,这里要把内部Flash和内存相区别,内部Flash是ROM,内存是RAM)。
……请往下看 SD卡缓存目录 当应用需要将图片或者文件缓存到SD卡中时要去申请创建目录,有下面几种途径 我们可以通过API调用应用专属目录: // /storage/emulated/0/Android...当应用被删除时,上面目录下的文件也会清空 内存缓存目录 相对于应用的专属SD卡缓存有两个内存缓存地址: Content. getCacheDir(); // /data/data/app_package_name.../cache Content. getFilesDir(); // /data/data/app_package_name/files 这两个目录中的文件也会随着app的删除而清空 当系统版本大于等于4.4...时,对通过上面4个API调用得到的目录进行文件的读写操作不需要申请SD卡的读写权限,所以6.0及以上系统使用时也不需要动态申请读写权限 使用注意事项 当存储比较大的文件时,如图片等文件存储在SD卡对应的目录下...,切随应用被卸载后自动清空 不会污染用户存储空间 * @param context 上下文 * @param type 文件夹类型 可以为空,为空则返回API得到的一级目录 * @return 缓存文件夹
前言 Android中经常需要使用文件存储用户数据 本文将梳理各个版本中的文件存储,希望能帮上忙。...] 内部存储 示意图 目录:/data/data/ 特点: 每个应用独占一个以包名命名的私有文件夹 在应用卸载时被删除 对MediaScanner不可见 适用场景:私密数据 2.2 API [aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy8xNTY3OTEwOC1jMDFkNTEyZjM1ZTk1YWMw...内部存储根目录下的文件夹(不存在则新建) data/data//files/ 描述 Context#getFilesDir():File!...示意图 私有目录(private):storage/emulated/0/Android/ 每个应用独占以包名命名的私有文件夹 在应用卸载时被删除 对MediaScanner不可见(例外:多媒体文件夹...API 21) 特点 适用场景:非私密数据,需要随应用卸载删除 公共目录(public):外部存储中除了私有目录外的其他空间 所有应用共享 在应用卸载时不会被删除 对MediaScanner可见 特点
在 Android Studio 中,可以使用以下方法对文件进行保存和获取文件中的数据: 保存文件: 创建一个 File 对象,指定要保存的文件路径和文件名。...使用 FileOutputStream 类创建一个文件输出流对象。 将需要保存的数据写入文件输出流中。 关闭文件输出流。...使用 FileInputStream 类创建一个文件输入流对象。 创建一个字节数组,用于存储从文件中读取的数据。 使用文件输入流的 read() 方法读取文件中的数据,并将其存储到字节数组中。...System.out.println("文件中的数据:" + data); 需要注意的是,上述代码中的 getFilesDir() 方法用于获取应用程序的内部存储目录,可以根据需要替换为其他存储路径。...这些是在 Android Studio 中保存和获取文件中的数据的基本步骤。
Android保存文件到本地路径问题 常见路径 例如: application 包名: com.my.company 项目名: chat /data/data == ///data/user/0 getExternalFilesDir.../data/你的应用包名/cache/目录, 一般存放临时缓存数据 如果使用上面的方法,当你的应用在被用户卸载后,SDCard/Android/data/你的应用的包名/ 这个目录下的所有文件都会被删除...,不会留下垃圾信息。...路径分类 android程序扫描储存时,如果使用API:Environment.getExternalStorageDirectory().getPath()获得的是默认路径,可以先判断下Environment.getExternalStorageDirectory...() = /data/data/com.my.app/files 以上这篇Android 保存文件路径方法就是小编分享给大家的全部内容了,希望能给大家一个参考。
用于存储Andoid设备的操作系统和应用程序的存储介质,Android设备中的Android系统和应用程序(APK文件)都是存在内部存储区的。例如手机的/system/目录、/data/目录等。...storage或mnt文件夹即为外部存储区,外部存储中的文件是可以被用户或者其他应用程序修改的,有两种类型的文件(或者目录): >1.公共文件Public files:文件是可以被自由访问,且文件的数据对其他应用或者用户来说都是有意义的...,当应用被卸载之后,其卸载前创建的文件仍然保留。...外部存储上的应用私有文件的价值,在于卸载之后这些文件也会被删除。类似于内部存储,只是和内部储存不同的是这个部分可以给用户和其他应用访问,所以才叫外部储存的私有部分嘛。...内部存储和外部存储的私有文件(也就是app包名下的)都是属于该app的,app卸载了他们也就跟着删除了。 ?
领取专属 10元无门槛券
手把手带您无忧上云