Android获取文件夹路径 /data/data/

本文详细解读了Android应用内部存储的结构,包括files、cache、customdir目录的用途和使用方法,提供了关于文件操作的实用指南。

首先内部存储路径为/data/data/youPackageName/,下面讲解的各路径都是基于你自己的应用的内部存储路径下。所有内部存储中保存的文件在用户卸载应用的时候会被删除。

一、 files
1. Context.getFilesDir(),该方法返回/data/data/youPackageName/files的File对象。
2. Context.openFileInput()与Context.openFileOutput(),只能读取和写入files下的文件,返回的是FileInputStream和FileOutputStream对象。
3. Context.fileList(),返回files下所有的文件名,返回的是String[]对象。
4. Context.deleteFile(String),删除files下指定名称的文件。

二、cache
1. Context.getCacheDir(),该方法返回/data/data/youPackageName/cache的File对象。

三、custom dir

getDir(String name, int mode),返回/data/data/youPackageName/下的指定名称的文件夹File对象,如果该文件夹不存在则用指定名称创建一个新的文件夹。
Android系统中,可借助`Context.getCacheDir()`和`Context.getFilesDir()`方法把文件保存到`/data/data`系统路径。 ### 使用`Context.getCacheDir()`保存文件 `Context.getCacheDir()`会返回`/data/data/youPackageName/cache`的`File`对象,该文件夹内的数据在设备内存不足时会被系统删除,且当文件夹内数据超过1MB,系统也会删除其中数据,但不能依赖系统来删除这些文件。示例代码如下: ```java import android.content.Context; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; public class FileSaver { public static void saveToCacheDir(Context context, String fileName, String content) { try { // 获取 /data/data/youPackageName/cache 目录 File cacheDir = context.getCacheDir(); File file = new File(cacheDir, fileName); FileOutputStream fos = new FileOutputStream(file); fos.write(content.getBytes()); fos.flush(); fos.close(); } catch (IOException e) { e.printStackTrace(); } } } ``` 调用方式: ```java // 在Activity中调用 FileSaver.saveToCacheDir(this, "test.txt", "这是要保存的内容"); ``` ### 使用`Context.getFilesDir()`保存文件 `Context.getFilesDir()`可获取`/data/data/youPackageName/files`目录,适合存放需长时间保存的数据。示例代码如下: ```java import android.content.Context; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; public class FileSaver { public static void saveToFilesDir(Context context, String fileName, String content) { try { // 获取 /data/data/youPackageName/files 目录 File filesDir = context.getFilesDir(); File file = new File(filesDir, fileName); FileOutputStream fos = new FileOutputStream(file); fos.write(content.getBytes()); fos.flush(); fos.close(); } catch (IOException e) { e.printStackTrace(); } } } ``` 调用方式: ```java // 在Activity中调用 FileSaver.saveToFilesDir(this, "test.txt", "这是要保存的内容"); ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值