Flutter 文件读写

作者: iwakevin | 来源:发表于2018-12-12 17:18 被阅读555次

在某些时候可能需要下载或保存文件到手机本地,这时候使用文件读写接口可以实现。

在 Flutter 里实现文件读写,需要使用 path_provider 和 dart 的 io 模块。path_provider 负责查找 iOS/Android 的目录文件,IO 模块负责对文件进行读写。

首先安装依赖:

dependencies:
  path_provider: ^0.4.1

通常来说会有以下几个步骤:

  • 找到正确的本地路径。
  • 创建对文件位置的引用。
  • 将数据写入文件。
  • 从文件中读取数据。

本地路径

path_provider 插件提供了一种平台不可知的方式来访问设备文件系统上的常用位置。 该插件当前支持访问两个系统文件位置:

  • 临时目录: 一个临时目录(缓存),系统可以随时清除。 在 iOS 上,这对应于 NSTemporaryDirectory() 返回的值。 在 Android 上,这是 getCacheDir() 回的值。
  • 文档目录:应用程序的目录,用于存储只有它可以访问的文件。 只有当应用程序被删除时,系统才会清除目录。 在 iOS 上,这对应于 NSDocumentDirectory。 在 Android 上这是 AppData 目录。

接下来使用 path_provider 查找本地路径。

import 'package:path_provider/path_provider.dart';

localPath() async {
    try {
        var tempDir = await getTemporaryDirectory();
        String tempPath = tempDir.path;

        var appDocDir = await getApplicationDocumentsDirectory();
        String appDocPath = appDocDir.path;

        print('临时目录: ' + tempPath);
        print('文档目录: ' + appDocPath);
    }
    catch(err) {
        print(err);
    }
}

// 临时目录: /data/user/0/com.example.myapp/cache
// 文档目录: /data/user/0/com.example.myapp/app_flutter

文件位置引用

一旦我们知道在哪里存储文件,我们需要创建一个文件的完整位置的引用。 我们可以使用 dart:io 库中的 File 类来实现此目的。

localFile(path) async {
    return new File('$path/counter.json');
}

读写文件

在对文件引用之后,就可以对文件进行读写操作了。

// 读取 json 数据
readJSON() async {
    try {
        final file = await localFile(await localPath());
        String str = await file.readAsString();
        return json.decode(str);
    }
    catch (err) {
        print(err);
    }
}

// 写入 json 数据
writeJSON(obj) {
    try {
        final file = await localFile(await localPath());
        return file.writeAsString(encode(obj));
    }
    catch (err) {
        print(err);
    }
}

相关文章

  • flutter 如何实现文件读写(使用篇)

    flutter文件读写可以对磁盘文件进行操作,实现某些业务场景,那么我们开始来讲下这个文件读写操作。 使用的库插件...

  • Flutter 文件读写

    在某些时候可能需要下载或保存文件到手机本地,这时候使用文件读写接口可以实现。 在 Flutter 里实现文件读写,...

  • Flutter 与原生之间的交互

    文件的方式 flutter和Native都具备对系统文件进行读写。这样就提供了一种思路。用于Flutter与Nat...

  • Flutter Flie本地文件读写

    获取临时存储路径 往文件写数据 读取文件数据 删除

  • C语言读写文件

    C语言文件读写### 标准文件读写 非标准文件读写 标准文件读写 头文件 include 打开文件 函数原型:FI...

  • 跟我一起学Python(八)

    一、IO编程 读写文件是最常见的IO操作,Python内置了读写文件的函数。文件读写的原理:在磁盘上读写文件的功能...

  • Python 学习笔记6 2018-04-13

    文件操作: 1,文件的读写操作 2,文件的各种系统操作 3,存储对象 1,文件的读写操作 读写数据: ...

  • 用Python实现磁盘IO操作全攻略,让数据流动起来!

    01 文件读写 1. 打开文件 读写文件是最常见的IO操作。Python内置了读写文件的函数,方便了文件的IO操作...

  • Flutter 文件读写---path_provider详解

    前言 在我们实际的应用开发过程中,常常会做一些本地持久化数据配置,在应用启动时可以拿到配置去处理对应的业务逻辑。或...

  • 2018-04-05

    文件与文件路径读写文件用shelve模块保存变量 1 python 读写文件 1.1 文件与文件路径 window...

网友评论

    本文标题:Flutter 文件读写

    本文链接:https://www.haomeiwen.com/subject/leephqtx.html