请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册
首页 社区 移动 Flutter 之 文件操作(二十九)

Flutter 之 文件操作(二十九)

猿梦 2022-9-12 05:16:45
人家段沛白换下?咱丁幼旋极#Dart的 IO 库包含了文件读写的相关类,它属于 Dart 语法标准的一部分,所以通过 Dart IO 库,无论是 Dart VM 下的脚本还是 Flutter,都是通过 Dart IO 库来操作文件的,不过和 Dart VM 相比,Flutter 有一个重要差异是文件系统路径不同,这是因为Dart VM 是运行在 PC 或服务器操作系统下,而 Flutter 是运行在移动操作系统中,他们的文件系统会有一些差异。Android 和 iOS 的应用存储目录不同,  PathProvider  插件提供了一种平台透明的方式来访问设备文件系统上的常用位置。该类当前支持访问两个文件系统位置:File代表一个整体的文件,他有三个构造函数,分别是:文件读取本身有两种形式,一种是文本,一种是二进制。2.2.1 读取文本内容如果是文本文件,File提供了readAsString、readAsLines、readAsStringSync、readAsLinesSync方法,读取文本内容readAsString 一次性读取所有文本readAsLines 一行行的读取文本结果返回的是一个List,list中表示文件每行的内容readAsStringSync、readAsLinesSync同步读取文本2.2.2 读取二进制内容如果文件是二进制,那么可以使用readAsBytes或者同步的方法readAsBytesSync:dart中表示二进制有一个专门的类型叫做Uint8List,他实际上表示的是一个int的List。上面提到的读取方式,都是一次性读取整个文件,缺点就是如果文件太大的话,可能造成内存空间的压力。所以File为我们提供了另外一种读取文件的方法,流的形式来读取文件.示例dart提供了open和openSync两个方法来进行随机文件读写:写入和文件读取一样,可以一次性写入或者获得一个写入句柄,然后再写入。一次性写入的方法有四种,分别对应字符串和二进制句柄形式可以调用openWrite方法,返回一个IOSink对象,然后通过这个对象进行写入:默认情况下写入是会覆盖整个文件的,但是可以通过下面的方式来更改写入模式:虽然dart中所有的异常都是运行时异常,但是和java一样,要想手动处理文件读写中的异常,则可以使用try,catch:我们还是以计数器为例,实现在应用退出重启后可以恢复点击次数。 这里,我们使用文件来保存数据:1.引入PathProvider插件;在pubspec.yaml文件中添加如下声明:执行 flutter pub get2.实现如下参考: p/92b09aaecf17https://book.flutterchina.club/chapter11/file_operation.html

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册