在应用开发中,保存数据一般会用到SharedPreferences和Settings.system来保存数据,而有的时候,保存的数据在断电关机的时候会丢失
所以就尝试用文本读写的方式保存数据
FileOutputStream流保存数据的时候 在关机前可以将缓存数据及时写入磁盘
1.写入数据
public void saveMusicPath(String musicpath){
/* Java 示例代码 */
FileOutputStream fostream = null;
try {
fostream = new FileOutputStream(getDiskCacheDir(MainActivity.this)+"/music.txt");
//将fostrea
#### 《设计思想解读开源框架》
![](https://img-blog.csdnimg.cn/img_convert/cca6161a055b157a3bbd069cedbbfe92.webp?x-oss-process=image/format,png)
**第一章、 热修复设计**
* **第一节、 AOT/JIT & dexopt 与 dex2oat**
* **第二节、 热修复设计之 CLASS_ISPREVERIFIED 问题**
* **第三节、热修复设计之热修复原理**
* **第四节、Tinker 的集成与使用(自动补丁包生成)**
![](https://img-blog.csdnimg.cn/img_convert/e88b2384f37c369879e287d9572fbd8f.webp?x-oss-process=image/format,png)
**第二章、 插件化框架设计**
* **第一节、 Class 文件与 Dex 文件的结构解读**
* **第二节、 Android 资源加载机制详解**
* **第三节、 四大组件调用原理**
* **第四节、 so 文件加载机制**
* **第五节、 Android 系统服务实现原理**
![](https://img-blog.csdnimg.cn/img_convert/7ec112bfe40c00f0d027d2e4c51411f1.webp?x-oss-process=image/format,png)
**第三章、 组件化框架设计**
* **第一节、阿里巴巴开源路由框——ARouter 原理分析**
* **第二节、APT 编译时期自动生成代码&动态类加载**
* **第三节、 Java SPI 机制**
* **第四节、 AOP&IOC**
* **第五节、 手写组件化架构**
![](https://img-blog.csdnimg.cn/img_convert/fcbfdec7956e869d0aa2683085ed0df5.webp?x-oss-process=image/format,png)
**第四章、图片加载框架**
* **第一节、图片加载框架选型**
* **第二节、Glide 原理分析**
* **第三节、手写图片加载框架实战**
![](https://img-blog.csdnimg.cn/img_convert/97524a22cecee66d8e0db46acd87b995.webp?x-oss-process=image/format,png)
**第五章、网络访问框架设计**
* **第一节、网络通信必备基础**
* **第二节、OkHttp 源码解读**
* **第三节、Retrofit 源码解析**
![](https://img-blog.csdnimg.cn/img_convert/f1b9dce706e50d233fae3da3c2261570.webp?x-oss-process=image/format,png)
**第六章、 RXJava 响应式编程框架设计**
* **第一节、链式调用**
* **第二节、 扩展的观察者模式**
* **第三节、事件变换设计**
* **第四节、Scheduler 线程控制**
![](https://img-blog.csdnimg.cn/img_convert/0a0949e2a7d5bf65c8fc42b0eb3ae5c4.webp?x-oss-process=image/format,png)
**第七章、 IOC 架构设计**
* **第一节、 依赖注入与控制反转**
* **第二节、ButterKnife 原理上篇、中篇、下篇**
* **第三节、Dagger 架构设计核心解密**
![](https://img-blog.csdnimg.cn/img_convert/7eb1fc1d61c8d84e73ee6602afc19fc7.webp?x-oss-process=image/format,png)
**第八章、 Android 架构组件 Jetpack**
* **第一节、 LiveData 原理**
* **第二节、 Navigation 如何解决 tabLayout 问题**
* **第三节、 ViewModel 如何感知 View 生命周期及内核原理**
* **第四节、 Room 架构方式方法**
* **第五节、 dataBinding 为什么能够支持 MVVM**
* **第六节、 WorkManager 内核揭秘**
* **第七节、 Lifecycles 生命周期**
![](https://img-blog.csdnimg.cn/img_convert/4fbe48de8277eb9b51682c550ee02294.webp?x-oss-process=image/format,png)
**本文包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…**
![](https://img-blog.csdnimg.cn/img_convert/f887cbb2b8d70ce219250b71fdba00f7.webp?x-oss-process=image/format,png)
外链图片转存中...(img-NgmxxoN0-1718767094793)]
**本文包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…**
[外链图片转存中...(img-aeUWLkP7-1718767094793)]