HarmonyOS API:@ohos.file.fs (文件管理)
版本:v3.1 Beta
@ohos.file.fs (文件管理)
fs.lstatSync
lstatSync(path: string): Stat
以同步方法获取链接文件信息。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
path | string | 是 | 文件的应用沙箱路径。 |
返回值:
类型 | 说明 |
Stat | 表示文件的具体信息。 |
示例:
let filePath = pathDir + "/test.txt";
let stat = fs.lstatSync(filePath);
fs.rename
rename(oldPath: string, newPath: string): Promise<void>
重命名文件,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
oldPath | string | 是 | 文件的应用沙箱原路径。 |
newPath | string | 是 | 文件的应用沙箱新路径。 |
返回值:
类型 | 说明 |
Promise<void> | Promise对象。无返回值。 |
示例:
let srcFile = pathDir + "/test.txt";
let dstFile = pathDir + '/new.txt';
fs.rename(srcFile, dstFile).then(function () {
console.info("rename succeed");
}).catch(function (err) {
console.info("rename failed with error message: " + err.message + ", error code: " + err.code);
});
fs.rename
rename(oldPath: string, newPath: string, callback: AsyncCallback<void>): void
重命名文件,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
oldPath | string | 是 | 文件的应用沙箱原路径。 |
newPath | string | 是 | 文件的应用沙箱新路径。 |
callback | AsyncCallback<void> | 是 | 异步重命名文件之后的回调。 |
示例:
let srcFile = pathDir + "/test.txt";
let dstFile = pathDir + '/new.txt';
fs.rename(srcFile, dstFile, function (err) {
if (err) {
console.info("rename failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("rename success");
}
});
fs.renameSync
renameSync(oldPath: string, newPath: string): void
以同步方法重命名文件。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
oldPath | string | 是 | 文件的应用沙箱原路径。 |
newPath | string | 是 | 文件的应用沙箱新路径。 |
示例:
let srcFile = pathDir + "/test.txt";
let dstFile = pathDir + '/new.txt';
fs.renameSync(srcFile, dstFile);
fs.fsync
fsync(fd: number): Promise<void>
同步文件数据,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
fd | number | 是 | 已打开的文件描述符。 |
返回值:
类型 | 说明 |
Promise<void> | Promise对象。无返回值。 |
示例:
let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath);
fs.fsync(file.fd).then(function () {
console.info("sync data succeed");
}).catch(function (err) {
console.info("sync data failed with error message: " + err.message + ", error code: " + err.code);
});
fs.fsync
fsync(fd: number, callback: AsyncCallback<void>): void
同步文件数据,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
fd | number | 是 | 已打开的文件描述符。 |
Callback | AsyncCallback<void> | 是 | 异步将文件数据同步之后的回调。 |
示例:
let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath);
fs.fsync(file.fd, function (err) {
if (err) {
console.info("fsync failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("fsync success");
fs.closeSync(file);
}
});
fs.fsyncSync
fsyncSync(fd: number): void
以同步方法同步文件数据。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
fd | number | 是 | 已打开的文件描述符。 |
示例:
let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath);
fs.fsyncSync(file.fd);
fs.closeSync(file);
fs.fdatasync
fdatasync(fd: number): Promise<void>
实现文件内容数据同步,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
fd | number | 是 | 已打开的文件描述符。 |
返回值:
类型 | 说明 |
Promise<void> | Promise对象。无返回值。 |
示例:
let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath);
fs.fdatasync(file.fd).then(function (err) {
console.info("sync data succeed");
fs.closeSync(file);
}).catch(function (err) {
console.info("sync data failed with error message: " + err.message + ", error code: " + err.code);
});
fs.fdatasync
fdatasync(fd: number, callback: AsyncCallback<void>): void
实现文件内容数据同步,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
fd | number | 是 | 已打开的文件描述符。 |
callback | AsyncCallback<void> | 是 | 异步将文件内容数据同步之后的回调。 |
示例:
let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath);
fs.fdatasync (file.fd, function (err) {
if (err) {
console.info("fdatasync failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("fdatasync success");
fs.closeSync(file);
}
});
fs.fdatasyncSync
fdatasyncSync(fd: number): void
以同步方法实现文件内容数据同步。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
fd | number | 是 | 已打开的文件描述符。 |
示例:
let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath);
let stat = fs.fdatasyncSync(file.fd);
fs.closeSync(file);
fs.symlink
symlink(target: string, srcPath: string): Promise<void>
基于文件路径创建符号链接,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
target | string | 是 | 源文件的应用沙箱路径。 |
srcPath | string | 是 | 符号链接文件的应用沙箱路径。 |
返回值:
类型 | 说明 |
Promise<void> | Promise对象。无返回值。 |
示例:
let srcFile = pathDir + "/test.txt";
let dstFile = pathDir + '/test';
fs.symlink(srcFile, dstFile).then(function () {
console.info("symlink succeed");
}).catch(function (err) {
console.info("symlink failed with error message: " + err.message + ", error code: " + err.code);
});
fs.symlink
symlink(target: string, srcPath: string, callback: AsyncCallback<void>): void
基于文件路径创建符号链接,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
target | string | 是 | 源文件的应用沙箱路径。 |
srcPath | string | 是 | 符号链接文件的应用沙箱路径。 |
callback | AsyncCallback<void> | 是 | 异步创建符号链接信息之后的回调。 |
示例:
let srcFile = pathDir + "/test.txt";
let dstFile = pathDir + '/test';
fs.symlink(srcFile, dstFile, function (err) {
if (err) {
console.info("symlink failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("symlink success");
}
});
fs.symlinkSync
symlinkSync(target: string, srcPath: string): void
以同步的方法基于文件路径创建符号链接。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
target | string | 是 | 源文件的应用沙箱路径。 |
srcPath | string | 是 | 符号链接文件的应用沙箱路径。 |
示例:
let srcFile = pathDir + "/test.txt";
let dstFile = pathDir + '/test';
fs.symlinkSync(srcFile, dstFile);
fs.mkdtemp
mkdtemp(prefix: string): Promise<string>
创建临时目录,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
prefix | string | 是 | 用随机产生的字符串替换以“XXXXXX”结尾目录路径。 |
返回值:
类型 | 说明 |
Promise<string> | Promise对象。返回生成的唯一目录路径。 |
示例:
fs.mkdtemp(pathDir + "/XXXXXX").then(function (pathDir) {
console.info("mkdtemp succeed:" + pathDir);
}).catch(function (err) {
console.info("mkdtemp failed with error message: " + err.message + ", error code: " + err.code);
});
fs.mkdtemp
mkdtemp(prefix: string, callback: AsyncCallback<string>): void
创建临时目录,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
prefix | string | 是 | 用随机产生的字符串替换以“XXXXXX”结尾目录路径。 |
callback | AsyncCallback<string> | 是 | 异步创建临时目录之后的回调。 |
示例:
fs.mkdtemp(pathDir + "/XXXXXX", function (err, res) {
if (err) {
console.info("mkdtemp failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("mkdtemp success");
}
});
fs.mkdtempSync
mkdtempSync(prefix: string): string
以同步的方法创建临时目录。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
prefix | string | 是 | 用随机产生的字符串替换以“XXXXXX”结尾目录路径。 |
返回值:
类型 | 说明 |
string | 产生的唯一目录路径。 |
示例:
let res = fs.mkdtempSync(pathDir + "/XXXXXX");
fs.createStream
createStream(path: string, mode: string): Promise<Stream>
基于文件路径打开文件流,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
path | string | 是 | 文件的应用沙箱路径。 |
mode | string | 是 | - r:打开只读文件,该文件必须存在。 - r+:打开可读写的文件,该文件必须存在。 - w:打开只写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。 - w+:打开可读写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。 - a:以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。 - a+:以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 |
返回值:
类型 | 说明 |
Promise<Stream> | Promise对象。返回文件流的结果。 |
示例:
let filePath = pathDir + "/test.txt";
fs.createStream(filePath, "r+").then(function (stream) {
console.info("createStream succeed");
}).catch(function (err) {
console.info("createStream failed with error message: " + err.message + ", error code: " + err.code);
});
fs.createStream
createStream(path: string, mode: string, callback: AsyncCallback<Stream>): void
基于文件路径打开文件流,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
path | string | 是 | 文件的应用沙箱路径。 |
mode | string | 是 | - r:打开只读文件,该文件必须存在。 - r+:打开可读写的文件,该文件必须存在。 - w:打开只写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。 - w+:打开可读写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。 - a:以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。 - a+:以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 |
callback | AsyncCallback<Stream> | 是 | 异步打开文件流之后的回调。 |
示例:
let filePath = pathDir + "/test.txt";
fs.createStream(filePath, "r+", function (err, stream) {
if (err) {
console.info("create stream failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("create stream success");
}
});
fs.createStreamSync
createStreamSync(path: string, mode: string): Stream
以同步方法基于文件路径打开文件流。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
path | string | 是 | 文件的应用沙箱路径。 |
mode | string | 是 | - r:打开只读文件,该文件必须存在。 - r+:打开可读写的文件,该文件必须存在。 - w:打开只写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。 - w+:打开可读写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。 - a:以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。 - a+:以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 |
返回值:
类型 | 说明 |
Stream | 返回文件流的结果。 |
示例:
let filePath = pathDir + "/test.txt";
let ss = fs.createStreamSync(filePath, "r+");
fs.fdopenStream
fdopenStream(fd: number, mode: string): Promise<Stream>
基于文件描述符打开文件流,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
fd | number | 是 | 已打开的文件描述符。 |
mode | string | 是 | - r:打开只读文件,该文件必须存在。 - r+:打开可读写的文件,该文件必须存在。 - w:打开只写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。 - w+:打开可读写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。 - a:以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。 - a+:以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 |
返回值:
类型 | 说明 |
Promise<Stream> | Promise对象。返回文件流的结果。 |
示例:
let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath);
fs.fdopenStream(file.fd, "r+").then(function (stream) {
console.info("openStream succeed");
fs.closeSync(file);
}).catch(function (err) {
console.info("openStream failed with error message: " + err.message + ", error code: " + err.code);
});
fs.fdopenStream
fdopenStream(fd: number, mode: string, callback: AsyncCallback<Stream>): void
基于文件描述符打开文件流,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
fd | number | 是 | 已打开的文件描述符。 |
mode | string | 是 | - r:打开只读文件,该文件必须存在。 - r+:打开可读写的文件,该文件必须存在。 - w:打开只写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。 - w+:打开可读写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。 - a:以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。 - a+:以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 |
callback | AsyncCallback<Stream> | 是 | 异步打开文件流之后的回调。 |
示例:
let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath, fs.OpenMode.READ_ONLY);
fs.fdopenStream(file.fd, "r+", function (err, stream) {
if (err) {
console.info("fdopen stream failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("fdopen stream success");
fs.closeSync(file);
}
});
fs.fdopenStreamSync
fdopenStreamSync(fd: number, mode: string): Stream
以同步方法基于文件描述符打开文件流。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
fd | number | 是 | 已打开的文件描述符。 |
mode | string | 是 | - r:打开只读文件,该文件必须存在。 - r+:打开可读写的文件,该文件必须存在。 - w:打开只写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。 - w+:打开可读写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。 - a:以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。 - a+:以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 |
返回值:
类型 | 说明 |
Stream | 返回文件流的结果。 |
示例:
let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath, fs.OpenMode.READ_ONLY | fs.OpenMode.CREATE);
let ss = fs.fdopenStreamSync(file.fd, "r+");
fs.closeSync(file);
Stat
文件具体信息,在调用Stat的方法前,需要先通过stat()方法(同步或异步)来构建一个Stat实例。
系统能力:以下各项对应的系统能力均为SystemCapability.FileManagement.File.FileIO。
属性
名称 | 类型 | 可读 | 可写 | 说明 |
ino | number | 是 | 否 | 标识该文件。通常同设备上的不同文件的INO不同。 |
mode | number | 是 | 否 | 表示文件权限,各特征位的含义如下: - 0o400:用户读,对于普通文件,所有者可读取文件;对于目录,所有者可读取目录项。 - 0o200:用户写,对于普通文件,所有者可写入文件;对于目录,所有者可创建/删除目录项。 - 0o100:用户执行,对于普通文件,所有者可执行文件;对于目录,所有者可在目录中搜索给定路径名。 - 0o040:用户组读,对于普通文件,所有用户组可读取文件;对于目录,所有用户组可读取目录项。 - 0o020:用户组写,对于普通文件,所有用户组可写入文件;对于目录,所有用户组可创建/删除目录项。 - 0o010:用户组执行,对于普通文件,所有用户组可执行文件;对于目录,所有用户组是否可在目录中搜索给定路径名。 - 0o004:其他读,对于普通文件,其余用户可读取文件;对于目录,其他用户组可读取目录项。 - 0o002:其他写,对于普通文件,其余用户可写入文件;对于目录,其他用户组可创建/删除目录项。 - 0o001:其他执行,对于普通文件,其余用户可执行文件;对于目录,其他用户组可在目录中搜索给定路径名。 |
uid | number | 是 | 否 | 文件所有者的ID。 |
gid | number | 是 | 否 | 文件所有组的ID。 |
size | number | 是 | 否 | 文件的大小,以字节为单位。仅对普通文件有效。 |
atime | number | 是 | 否 | 上次访问该文件的时间,表示距1970年1月1日0时0分0秒的秒数。 |
mtime | number | 是 | 否 | 上次修改该文件的时间,表示距1970年1月1日0时0分0秒的秒数。 |
ctime | number | 是 | 否 | 最近改变文件状态的时间,表示距1970年1月1日0时0分0秒的秒数。 |
isBlockDevice
isBlockDevice(): boolean
用于判断文件是否是块特殊文件。一个块特殊文件只能以块为粒度进行访问,且访问的时候带缓存。
系统能力:SystemCapability.FileManagement.File.FileIO
返回值:
类型 | 说明 |
boolean | 表示文件是否是块特殊设备。 |
示例:
let filePath = pathDir + "/test.txt";
let isBLockDevice = fs.statSync(filePath).isBlockDevice();
isCharacterDevice
isCharacterDevice(): boolean
用于判断文件是否是字符特殊文件。一个字符特殊设备可进行随机访问,且访问的时候不带缓存。
系统能力:SystemCapability.FileManagement.File.FileIO
返回值:
类型 | 说明 |
boolean | 表示文件是否是字符特殊设备。 |
示例:
let filePath = pathDir + "/test.txt";
let isCharacterDevice = fs.statSync(filePath).isCharacterDevice();
isDirectory
isDirectory(): boolean
用于判断文件是否是目录。
系统能力:SystemCapability.FileManagement.File.FileIO
返回值:
类型 | 说明 |
boolean | 表示文件是否是目录。 |
示例:
let dirPath = pathDir + "/test";
let isDirectory = fs.statSync(dirPath).isDirectory();
isFIFO
isFIFO(): boolean
用于判断文件是否是命名管道(有时也称为FIFO)。命名管道通常用于进程间通信。
系统能力:SystemCapability.FileManagement.File.FileIO
返回值:
类型 | 说明 |
boolean | 表示文件是否是 FIFO。 |
示例:
let filePath = pathDir + "/test.txt";
let isFIFO = fs.statSync(filePath).isFIFO();
isFile
isFile(): boolean
用于判断文件是否是普通文件。
系统能力:SystemCapability.FileManagement.File.FileIO
返回值:
类型 | 说明 |
boolean | 表示文件是否是普通文件。 |
示例:
let filePath = pathDir + "/test.txt";
let isFile = fs.statSync(filePath).isFile();
isSocket
isSocket(): boolean
用于判断文件是否是套接字。
系统能力:SystemCapability.FileManagement.File.FileIO
返回值:
类型 | 说明 |
boolean | 表示文件是否是套接字。 |
示例:
let filePath = pathDir + "/test.txt";
let isSocket = fs.statSync(filePath).isSocket();
isSymbolicLink
isSymbolicLink(): boolean
用于判断文件是否是符号链接。
系统能力:SystemCapability.FileManagement.File.FileIO
返回值:
类型 | 说明 |
boolean | 表示文件是否是符号链接。 |
示例:
let filePath = pathDir + "/test";
let isSymbolicLink = fs.statSync(filePath).isSymbolicLink();
Stream
文件流,在调用Stream的方法前,需要先通过createStream()方法(同步或异步)来构建一个Stream实例。
close
close(): Promise<void>
关闭文件流,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
返回值:
类型 | 说明 |
Promise<void> | Promise对象。返回表示异步关闭文件流的结果。 |
示例:
let filePath = pathDir + "/test.txt";
let ss= fs.createStreamSync(filePath, "r+");
ss.close().then(function () {
console.info("close fileStream succeed");
}).catch(function (err) {
console.info("close fileStream failed with error message: " + err.message + ", error code: " + err.code);
});
close
close(callback: AsyncCallback<void>): void
异步关闭文件流,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
callback | AsyncCallback<void> | 是 | 异步关闭文件流之后的回调。 |
示例:
let filePath = pathDir + "/test.txt";
let ss= fs.createStreamSync(filePath, "r+");
ss.close(function (err) {
if (err) {
console.info("close stream failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("close stream success"):
}
});
closeSync
closeSync(): void
同步关闭文件流。
系统能力:SystemCapability.FileManagement.File.FileIO
示例:
let filePath = pathDir + "/test.txt";
let ss= fs.createStreamSync(filePath, "r+");
ss.closeSync();
flush
flush(): Promise<void>
刷新文件流,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
返回值:
类型 | 说明 |
Promise<void> | Promise对象。返回表示异步刷新文件流的结果。 |
示例:
let filePath = pathDir + "/test.txt";
let ss= fs.createStreamSync(filePath, "r+");
ss.flush().then(function () {
console.info("flush succeed");
}).catch(function (err) {
console.info("flush failed with error message: " + err.message + ", error code: " + err.code);
});
flush
flush(callback: AsyncCallback<void>): void
异步刷新文件流,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
callback | AsyncCallback<void> | 是 | 异步刷新文件流后的回调函数。 |
示例:
let filePath = pathDir + "/test.txt";
let ss= fs.createStreamSync(filePath, "r+");
ss.flush(function (err) {
if (err) {
console.info("flush stream failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("flush success");
}
});
flushSync
flushSync(): void
同步刷新文件流。
系统能力:SystemCapability.FileManagement.File.FileIO
示例:
let filePath = pathDir + "/test.txt";
let ss= fs.createStreamSync(filePath, "r+");
ss.flushSync();
write
write(buffer: ArrayBuffer|string, options?: { offset?: number; length?: number; encoding?: string; }): Promise<number>
将数据写入流文件,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
buffer | ArrayBuffer|string | 是 | 待写入文件的数据,可来自缓冲区或字符串。 |
options | Object | 否 | 支持如下选项: - length,number类型,表示期望写入数据的长度。默认缓冲区长度。 - offset,number类型,表示期望写入文件的位置。可选,默认从当前位置开始写。 - encoding,string类型,当数据是string类型时有效,表示数据的编码方式,默认 'utf-8'。仅支持 'utf-8'。 |
返回值:
类型 | 说明 |
Promise<number> | Promise对象。返回实际写入的长度。 |
示例:
let filePath = pathDir + "/test.txt";
let ss= fs.createStreamSync(filePath, "r+");
ss.write("hello, world",{ offset: 5, length: 5, encoding: 'utf-8' }).then(function (number) {
console.info("write succeed and size is:" + number);
}).catch(function (err) {
console.info("write failed with error message: " + err.message + ", error code: " + err.code);
});
write
write(buffer: ArrayBuffer|string, options?: { offset?: number; length?: number; encoding?: string; }, callback: AsyncCallback<number>): void
将数据写入流文件,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
buffer | ArrayBuffer|string | 是 | 待写入文件的数据,可来自缓冲区或字符串。 |
options | Object | 否 | 支持如下选项: - length,number类型,表示期望写入数据的长度。可选,默认缓冲区长度。 - offset,number类型,表示期望写入文件的位置。可选,默认从当前位置开始写。 - encoding,string类型,当数据是string类型时有效,表示数据的编码方式,默认 'utf-8'。仅支持 'utf-8'。 |
callback | AsyncCallback<number> | 是 | 异步写入完成后执行的回调函数。 |
示例:
let filePath = pathDir + "/test.txt";
let ss= fs.createStreamSync(filePath, "r+");
ss.write("hello, world", { offset: 5, length: 5, encoding :'utf-8'}, function (err, bytesWritten) {
if (err) {
console.info("write stream failed with error message: " + err.message + ", error code: " + err.code);
} else {
if (bytesWritten) {
console.info("write succeed and size is:" + bytesWritten);
}
}
});
writeSync
writeSync(buffer: ArrayBuffer|string, options?: { offset?: number; length?: number; encoding?: string; }): number
以同步方法将数据写入流文件。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
buffer | ArrayBuffer|string | 是 | 待写入文件的数据,可来自缓冲区或字符串。 |
options | Object | 否 | 支持如下选项: - length,number类型,表示期望写入数据的长度。可选,默认缓冲区长度。 - offset,number类型,表示期望写入文件的位置。可选,默认从当前位置开始写。 - encoding,string类型,当数据是string类型时有效,表示数据的编码方式,默认 'utf-8'。仅支持 'utf-8'。 |
返回值:
类型 | 说明 |
number | 实际写入的长度。 |
示例:
let filePath = pathDir + "/test.txt";
let ss= fs.createStreamSync(filePath,"r+");
let num = ss.writeSync("hello, world", {offset: 5, length: 5, encoding :'utf-8'});
read
read(buffer: ArrayBuffer, options?: { offset?: number; length?: number; }): Promise<number>
从流文件读取数据,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
buffer | ArrayBuffer | 是 | 用于读取文件的缓冲区。 |
options | Object | 否 | 支持如下选项: - length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度。 - offset,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读。 |
返回值:
类型 | 说明 |
Promise<number> | Promise对象。返回读取的结果。 |
示例:
let filePath = pathDir + "/test.txt";
let ss = fs.createStreamSync(filePath, "r+");
let buf = new ArrayBuffer(4096);
ss.read(buf, {offset: 5, length: 5}).then(function (readLen) {
console.info("read data succeed");
console.log(String.fromCharCode.apply(null, new Uint8Array(buf)));
}).catch(function (err) {
console.info("read data failed with error message: " + err.message + ", error code: " + err.code);
});
read
read(buffer: ArrayBuffer, options?: { position?: number; offset?: number; length?: number; }, callback: AsyncCallback<number>): void
从流文件读取数据,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
buffer | ArrayBuffer | 是 | 用于读取文件的缓冲区。 |
options | Object | 否 | 支持如下选项: - length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度。 - offset,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读. |
callback | AsyncCallback<number> | 是 | 异步从流文件读取数据之后的回调。 |
示例:
let filePath = pathDir + "/test.txt";
let ss = fs.createStreamSync(filePath, "r+");
let buf = new ArrayBuffer(4096)
ss.read(buf, {offset: 5, length: 5},function (err, readLen) {
if (err) {
console.info("read stream failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("read data succeed");
console.log(String.fromCharCode.apply(null, new Uint8Array(buf)));
}
});
readSync
readSync(buffer: ArrayBuffer, options?: { offset?: number; length?: number; }): number
以同步方法从流文件读取数据。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
buffer | ArrayBuffer | 是 | 用于读取文件的缓冲区。 |
options | Object | 否 | 支持如下选项: - length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度。 - offset,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读。 |
返回值:
类型 | 说明 |
number | 实际读取的长度。 |
示例:
let filePath = pathDir + "/test.txt";
let ss = fs.createStreamSync(filePath, "r+");
let num = ss.readSync(new ArrayBuffer(4096), {offset: 5, length: 5});
File
由open接口打开的File对象。
系统能力:SystemCapability.FileManagement.File.FileIO
属性
名称 | 类型 | 可读 | 可写 | 说明 |
fd | number | 是 | 否 | 打开的文件描述符。 |
OpenMode
open接口flags参数常量。文件打开标签。
系统能力:SystemCapability.FileManagement.File.FileIO
名称 | 类型 | 值 | 说明 |
READ_ONLY | number | 0o0 | 只读打开。 |
WRITE_ONLY | number | 0o1 | 只写打开。 |
READ_WRITE | number | 0o2 | 读写打开。 |
CREATE | number | 0o100 | 若文件不存在,则创建文件。 |
TRUNC | number | 0o1000 | 如果文件存在且以只写或读写的方式打开文件,则将其长度裁剪为零。 |
APPEND | number | 0o2000 | 以追加方式打开,后续写将追加到文件末尾。 |
NONBLOCK | number | 0o4000 | 如果path指向FIFO、块特殊文件或字符特殊文件,则本次打开及后续 IO 进行非阻塞操作。 |
DIR | number | 0o200000 | 如果path不指向目录,则出错。 |
NOFOLLOW | number | 0o400000 | 如果path指向符号链接,则出错。 |
SYNC | number | 0o4010000 | 以同步IO的方式打开文件。 |