添加依赖:

  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);
});
});
});

flutter 中文件工具类的更多相关文章

  1. 自动扫描FTP文件工具类 ScanFtp.java

    package com.util; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import ja ...

  2. 读取Config文件工具类 PropertiesConfig.java

    package com.util; import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io ...

  3. Android FileUtil(android文件工具类)

    android开发和Java开发差不了多少,也会有许多相同的功能.像本文提到的文件存储,在Java项目和android项目里面用到都是相同的.只是android开发的一些路径做了相应的处理. 下面就是 ...

  4. Java常用工具类---IP工具类、File文件工具类

    package com.jarvis.base.util; import java.io.IOException;import java.io.InputStreamReader;import jav ...

  5. 简单了解Spring中常用工具类_java - JAVA

    文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 文件资源操作 Spring 定义了一个 org.springframework.core.io.Resource 接口, ...

  6. FileUtils 文件工具类

    FileUtils 下载jar中的文件 package com.meeno.chemical.common.utils; import lombok.extern.slf4j.Slf4j; impor ...

  7. Property工具类,Properties文件工具类,PropertiesUtils工具类

    Property工具类,Properties文件工具类,PropertiesUtils工具类 >>>>>>>>>>>>>& ...

  8. JUC学习笔记--JUC中并发工具类

    JUC中并发工具类 CountDownLatch CountDownLatch是我目前使用比较多的类,CountDownLatch初始化时会给定一个计数,然后每次调用countDown() 计数减1, ...

  9. Java 实现删除文件工具类

    工具代码 package com.wangbo; import java.io.File; /** * 删除目录或文件工具类 * @author wangbo * @date 2017-04-11 1 ...

随机推荐

  1. html实战

    主要html源码 <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset=&qu ...

  2. abp学习(一)

    官网概念 ASP.NET样板是特别设计的新的现代Web应用程序的通用应用框架.它使用已经熟悉的工具并围绕这些工具实现最佳实践,从而为您提供一致的开发体验. 官网地址:https://aspnetboi ...

  3. robot framework 笔记(一)

    背景: 平时使用rf时会用到一些方法,长时间不用就会忘记,本文用来记录当做自己的小笔记 内容持续更新中········ 一.robot framework 大小写转换 1.转换小写: ${low} E ...

  4. LG3768 简单的数学题

    P3768 简单的数学题 题目描述 输入一个整数n和一个整数p,你需要求出$(\sum_{i=1}^n\sum_{j=1}^n ijgcd(i,j))~mod~p$,其中gcd(a,b)表示a与b的最 ...

  5. vue中url带有#号键,去除方法

    在写vue项目中,发现路由跳转总是带有#,在获取数据中带来不必要的麻烦,如果我们不希望 路由中出现 # ,那怎么办呢? 解决办法: 在router ---->index 中 添加代码   mod ...

  6. windows下面同时部署多个tomcat的方法

    下面我们把配置的详细过程写在下面,以供参考:(此例以配置三个Tomcat为例)1. 下载apache-tomcat-7.0.63,下载下来的文件为apache-tomcat-7.0.63.zip.2. ...

  7. Java入门程序HelloWord

    Java程序开发三步骤:编写,编译,运行 编译器(编译):javac.exe 解释器(运行):java.exe 编译:把我们能看得懂的java代码(xxx.java)翻译成jvm可以运行的java字节 ...

  8. 学习Spring-Data-Jpa(三)---关联关系常用注解

    1.@JoinColumn: 用于指定 连接实体关联或元素集合的列. 属性 name: 外键列的名称,它所在的表取决于上下文. 如果连接是使用外键映射策略的一对一或多对一映射,则外键列位于源实体或可嵌 ...

  9. [TypeScript ] Using the Null Coalescing operator with TypeScript 3.7

    The postshows you how to use the null coalescing operator (??) instead of logical or (||) to set def ...

  10. shell脚本之字符串运算的使用

    字符串运算符 下表列出了常用的字符串运算符,假定变量 a 为 "abc",变量 b 为 "efg": 运算符 说明 举例 = 检测两个字符串是否相等,相等返回 ...