添加依赖:

  path_provider: ^0.5.0+1
import 'dart:convert';
import 'dart:io'; import 'package:path_provider/path_provider.dart'; class FileUtils {
/// 临时目录: /data/user/0/com.example.myapp/cache
/// 一个临时目录(缓存),系统可以随时清除。
static Future<String> getTempDir() async {
try {
Directory tempDir = await getTemporaryDirectory();
return tempDir.path;
} catch (err) {
print(err);
return null;
}
} /// 文档目录: /data/user/0/com.example.myapp/app_flutter
/// 应用程序的目录,用于存储只有它可以访问的文件。只有当应用程序被删除时,系统才会清除目录。
static Future<String> getAppDocDir() async {
try {
Directory appDocDir = await getApplicationDocumentsDirectory();
return appDocDir.path;
} catch (err) {
print(err);
return null;
}
} static readFile(filePath) {
return new File('$filePath');
} /// 读取json文件
static Future<String> readJsonFile(filePath) async {
try {
final file = readFile(filePath);
return await file.readAsString();
} catch (err) {
print(err);
return null;
}
} /// 写入json文件
static Future<File> writeJsonFile(obj, filePath) async {
try {
final file = readFile(filePath);
return await file.writeAsString(json.encode(obj));
} catch (err) {
print(err);
return null;
}
}
}

使用:

      FileUtils.getAppDocDir().then((String appDocDir) {
String filePath = appDocDir + '/test.json';
FileUtils.readJsonFile(filePath).then((String sms) {
if (_sms == null || sms.isEmpty) { return;
}
setState(() {
Map marketingSmsMap = json.decode(sms);
DataBean _bean = new DataBean.fromJson(marketingSmsMap);
});
});
});

最新文章

  1. 第一章 DeepLab的创作动机
  2. 聊聊HTTPS和SSL/TLS协议
  3. July 16th, Week 29th Saturday, 2016
  4. history and its relevant variables in Linux/GNU and Mac OS history命令以及相关环境变量
  5. Android WebRTC 音视频开发总结(三)-- 信令服务和媒体服务
  6. AppCan移动技术全景图:创新、协作、支撑
  7. Hadoop常见的45个问题解答
  8. Java 集合框架 ArrayList 源码剖析
  9. 重写boost内存池
  10. uva11624 - Fire!
  11. 关于SSH框架设计的一些理解
  12. jsplumb 使用总结
  13. libcurl.a 跨平台
  14. android网页打印,安卓网页打印,h5页面打印,浏览器打印,js打印工具
  15. 2017-9-10-Vim使用说明
  16. ruby的第一次使用
  17. html页面中的title设置为空格
  18. IOS设计模式第七篇之观察者设计模式
  19. OpenACC kernels
  20. java内存溢出示例(堆溢出、栈溢出)

热门文章

  1. Kotlin扩展深入解析及注意事项和可见性
  2. machine learning (3)---Linear Algebra Review
  3. PHP——获取当前时间精确到毫秒(yyyyMMddHHmmssSSS)
  4. call与apply的用法
  5. Java静态代理与动态代理 理解与应用场景
  6. 浮点数转成字符串函数gcvt()
  7. Kafka ISR and AR HW 、 LEO
  8. 卡林巴琴谱&amp;简谱
  9. BCB key事件中判断Shift、Alt、Ctrl状态
  10. QSetting介绍