flutter 中文件工具类
添加依赖:
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 中文件工具类的更多相关文章
- 自动扫描FTP文件工具类 ScanFtp.java
package com.util; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import ja ...
- 读取Config文件工具类 PropertiesConfig.java
package com.util; import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io ...
- Android FileUtil(android文件工具类)
android开发和Java开发差不了多少,也会有许多相同的功能.像本文提到的文件存储,在Java项目和android项目里面用到都是相同的.只是android开发的一些路径做了相应的处理. 下面就是 ...
- Java常用工具类---IP工具类、File文件工具类
package com.jarvis.base.util; import java.io.IOException;import java.io.InputStreamReader;import jav ...
- 简单了解Spring中常用工具类_java - JAVA
文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 文件资源操作 Spring 定义了一个 org.springframework.core.io.Resource 接口, ...
- FileUtils 文件工具类
FileUtils 下载jar中的文件 package com.meeno.chemical.common.utils; import lombok.extern.slf4j.Slf4j; impor ...
- Property工具类,Properties文件工具类,PropertiesUtils工具类
Property工具类,Properties文件工具类,PropertiesUtils工具类 >>>>>>>>>>>>>& ...
- JUC学习笔记--JUC中并发工具类
JUC中并发工具类 CountDownLatch CountDownLatch是我目前使用比较多的类,CountDownLatch初始化时会给定一个计数,然后每次调用countDown() 计数减1, ...
- Java 实现删除文件工具类
工具代码 package com.wangbo; import java.io.File; /** * 删除目录或文件工具类 * @author wangbo * @date 2017-04-11 1 ...
随机推荐
- html实战
主要html源码 <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset=&qu ...
- abp学习(一)
官网概念 ASP.NET样板是特别设计的新的现代Web应用程序的通用应用框架.它使用已经熟悉的工具并围绕这些工具实现最佳实践,从而为您提供一致的开发体验. 官网地址:https://aspnetboi ...
- robot framework 笔记(一)
背景: 平时使用rf时会用到一些方法,长时间不用就会忘记,本文用来记录当做自己的小笔记 内容持续更新中········ 一.robot framework 大小写转换 1.转换小写: ${low} E ...
- LG3768 简单的数学题
P3768 简单的数学题 题目描述 输入一个整数n和一个整数p,你需要求出$(\sum_{i=1}^n\sum_{j=1}^n ijgcd(i,j))~mod~p$,其中gcd(a,b)表示a与b的最 ...
- vue中url带有#号键,去除方法
在写vue项目中,发现路由跳转总是带有#,在获取数据中带来不必要的麻烦,如果我们不希望 路由中出现 # ,那怎么办呢? 解决办法: 在router ---->index 中 添加代码 mod ...
- windows下面同时部署多个tomcat的方法
下面我们把配置的详细过程写在下面,以供参考:(此例以配置三个Tomcat为例)1. 下载apache-tomcat-7.0.63,下载下来的文件为apache-tomcat-7.0.63.zip.2. ...
- Java入门程序HelloWord
Java程序开发三步骤:编写,编译,运行 编译器(编译):javac.exe 解释器(运行):java.exe 编译:把我们能看得懂的java代码(xxx.java)翻译成jvm可以运行的java字节 ...
- 学习Spring-Data-Jpa(三)---关联关系常用注解
1.@JoinColumn: 用于指定 连接实体关联或元素集合的列. 属性 name: 外键列的名称,它所在的表取决于上下文. 如果连接是使用外键映射策略的一对一或多对一映射,则外键列位于源实体或可嵌 ...
- [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 ...
- shell脚本之字符串运算的使用
字符串运算符 下表列出了常用的字符串运算符,假定变量 a 为 "abc",变量 b 为 "efg": 运算符 说明 举例 = 检测两个字符串是否相等,相等返回 ...