📜  在 Flutter 中写入和读取文件 - Dart (1)

📅  最后修改于: 2023-12-03 15:07:39.321000             🧑  作者: Mango

在 Flutter 中写入和读取文件 - Dart

在 Flutter 中写入和读取文件是常见的任务之一。在本文中,我们将介绍如何在 Flutter 中使用 Dart 编程语言完成这些操作。

写入文件

要写入文件,在 Flutter 中可以使用 dart:io 包中的 File 类。

首先,导入 dart:io 包:

import 'dart:io';

然后,使用 File 类创建一个文件对象:

File file = File('/path/to/file');

接下来,可以使用 writeAsString 方法向文件中写入文本:

file.writeAsString('Hello, World!');

如果要写入较大的数据,可以使用 openWrite 方法进行逐步写入:

var sink = file.openWrite();
sink.write('Hello, ');
sink.write('World!');
await sink.flush();
await sink.close();

在上面的示例中, openWrite 方法返回一个 IOSink 对象,可用于逐步写入数据。对 IOSink 对象调用 write 方法会将数据写入缓冲区中。要将缓冲区中的数据写入文件,必须调用 flush 方法,然后调用 close 方法关闭文件。

读取文件

要读取文件,在 Flutter 中同样可以使用 dart:io 包中的 File 类。

首先,也是创建一个文件对象:

File file = File('/path/to/file');

接下来,可以使用 readAsString 方法读取文件中的文本:

String contents = await file.readAsString();

使用 openRead 方法可以逐步读取文件:

var stream = file.openRead();
stream.transform(utf8.decoder).listen((contents) {
  print('Contents: $contents');
}, onDone: () {
  print('File is now closed.');
}, onError: (e) {
  print('Error: $e');
});

在上面的示例中, openRead 方法返回一个 Stream 对象,可用于逐步读取文件。使用 transform 方法将缓冲区中的字节数据解码为字符串。调用 listen 方法并指定回调可以在读取数据时执行自定义操作。当读取完成或发生错误时,函数将退出。

总结

在 Flutter 中写入和读取文件的操作相对简单,可使用 dart:io 包中的 File 类实现。写入文件时可以使用 writeAsString 方法或逐步写入使用 openWrite 方法,读取文件时可以使用 readAsString 方法或逐步读取使用 openRead 方法。