提供使用模拟实现覆盖 dart:io 各种 API 的功能。
此抽象基类应通过覆盖构造模拟所需的操作来扩展。此基类中的实现默认为实际的 dart:io 实现。例如
class MyDirectory implements Directory {
...
// An implementation of the Directory interface
...
}
void main() {
IOOverrides.runZoned(() {
...
// Operations will use MyDirectory instead of dart:io's Directory
// implementation whenever Directory is used.
...
}, createDirectory: (String path) => new MyDirectory(path));
}
构造函数
属性
方法
-
createDirectory(
String path) → Directory - 为给定的
path
创建一个新的 Directory 对象。 -
createFile(
String path) → File - 为给定的
path
创建一个新的 File 对象。 -
createLink(
String path) → Link - 为给定的
path
返回一个新的 Link 对象。 -
fseGetType(
String path, bool followLinks) → Future< FileSystemEntityType> - 异步返回
path
的 FileSystemEntityType。 -
fseGetTypeSync(
String path, bool followLinks) → FileSystemEntityType - 返回
path
的 FileSystemEntityType。 -
fseIdentical(
String path1, String path2) → Future< bool> - 异步返回
true
,如果path1
和path2
是指向同一文件系统对象的路径。 -
fseIdenticalSync(
String path1, String path2) → bool - 返回
true
,如果path1
和path2
是指向同一文件系统对象的路径。 -
fsWatch(
String path, int events, bool recursive) → Stream< FileSystemEvent> - 返回一个 Stream,包含 FileSystemEvent。
-
fsWatchIsSupported(
) → bool - 当支持 FileSystemEntity.watch 时返回
true
。 -
getCurrentDirectory(
) → Directory - 返回当前工作目录。
-
getSystemTempDirectory(
) → Directory - 返回系统临时目录。
-
noSuchMethod(
Invocation invocation) → dynamic - 当访问不存在的方法或属性时被调用。继承
-
serverSocketBind(
dynamic address, int port, {int backlog = 0, bool v6Only = false, }) → Future< ServerSocket> - 异步返回一个连接到指定地址和端口的 ServerSocket。
-
setCurrentDirectory(
String path) → void - 将当前工作目录设置为
path
。 -
socketConnect(
dynamic host, int port, {dynamic sourceAddress, int sourcePort = 0, Duration? timeout}) → Future< Socket> - 异步返回一个连接到指定主机和端口的 Socket。
-
socketStartConnect(
dynamic host, int port, {dynamic sourceAddress, int sourcePort = 0}) → Future< ConnectionTask< Socket> > - 异步返回一个连接到指定主机和端口的 ConnectionTask。
-
stat(
String path) → Future< FileStat> - 异步返回
path
的 FileStat 信息。 -
statSync(
String path) → FileStat - 返回
path
的 FileStat 信息。 -
toString(
) → String - 此对象的字符串表示。继承
运算符
-
operator ==(
Object other) → bool - 等号运算符。继承
静态属性
- current → IOOverrides?
-
无设置器
- global ← IOOverrides?
- 在根 Zone 中使用的 IOOverrides。无getter
静态方法
-
runWithIOOverrides<
R> (R body(), IOOverrides overrides) → R - 在
overrides
中找到的覆盖下,在一个新的 Zone 中运行body
。 -
runZoned<
R> (R body(), {Directory createDirectory(String)?, Directory getCurrentDirectory()?, void setCurrentDirectory(String)?, Directory getSystemTempDirectory()?, File createFile(String)?, Future< FileStat> stat(String)?, FileStat statSync(String)?, Future<bool> fseIdentical(String, String)?, bool fseIdenticalSync(String, String)?, Future<FileSystemEntityType> fseGetType(String, bool)?, FileSystemEntityType fseGetTypeSync(String, bool)?, Stream<FileSystemEvent> fsWatch(String, int, bool)?, bool fsWatchIsSupported()?, Link createLink(String)?, Future<Socket> socketConnect(dynamic, int, {dynamic sourceAddress, int sourcePort, Duration? timeout})?, Future<ConnectionTask< socketStartConnect(dynamic, int, {dynamic sourceAddress, int sourcePort})?, Future<Socket> >ServerSocket> serverSocketBind(dynamic, int, {int backlog, bool v6Only})?, Stdin stdin()?, Stdout stdout()?, Stdout stderr()?}) → R - 使用提供的覆盖在新的 Zone 中运行
body
。