所有的Android设备都有两个文件存储区域:内部存储和外部存储。内部存储都是指手机内部(这并不是说外部存储就是指的手机的外部SD卡之类的,外部存储物理上来说也有可能是在手机内部)。
内部存储中的文件只有您的应用本身可以访问,当用户卸载应用后,系统会从内部存储中移除您的应用中的所有文件。使用内部存储不需要申请权限。
使用场景
内部存储主要用来保存一些私有数据,如果你希望保存的数据只能被你自己的应用访问,那么内部存储是最佳的选择。
如何使用
保存长期数据
(保存在data/data/packagename/files)
(1)写入数据
既然要向内部存储中写入数据,那么我们需要得到指向内部存储文件的输出流,有两种方式获得:
1.调用Context对象的openFileOutput()获取写入到内部目录文件的FileOutputStream。
FileOutputStream fileOutputStream =
context.openFileOutput("fileName",Context.MODE_PRIVATE);
2.使用File构造函数,指定内部存储的目录,通过File对象创建写入到内部目录文件的FileOutputStream。
File file = new File(context.getFilesDir(),"fileName");
FileOutputStream fileOutputStream = new FileOutputStream(file);
这两种方式都可能会抛出FileNotFoundException,如果你要写入的文件不存在就会抛出异常。
下面是一段从流中读取数据写入到内部存储文件的一段代码示例:
/**
* 以文件的方式将数据写入到应用内部存储,不需要申请权限;
* 文件是私有的,一般情况下只有你自己的应用可以访问此文件(通过FileProvider也可以实现共享);
* 当用户卸载应用时,这些文件将随应用一起被移除。
*
* @param context
* @param fileName
* @param inpu