HarmonyOS API:@ohos.file.fs (文件管理)
版本:v3.1 Beta
@ohos.file.fs (文件管理)
更新时间: 2023-02-17 09:19
该模块为基础文件操作API,提供基础文件操作能力,包括文件基本管理、文件目录管理、文件信息统计、文件流式读写等常用功能。
说明
本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
本模块支持对错误码进行处理,错误码及其适配方式请参考错误码适配指导。
导入模块
import fs from '@ohos.file.fs';
使用说明
使用该功能模块对文件/目录进行操作前,需要先获取其应用沙箱路径,获取方式及其接口用法请参考:
Stage模型
import UIAbility from '@ohos.app.ability.UIAbility';
export default class EntryAbility extends UIAbility {
onWindowStageCreate(windowStage) {
let context = this.context;
let pathDir = context.filesDir;
}
}
FA模型
import featureAbility from '@ohos.ability.featureAbility';
let context = featureAbility.getContext();
context.getFilesDir().then((data) => {
let pathDir = data;
})
FA模型context的具体获取方法参见FA模型。
fs.stat
stat(file: string|number): Promise<Stat>
获取文件信息,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
file | string|number | 是 | 文件应用沙箱路径path或已打开的文件描述符fd。 |
返回值:
类型 | 说明 |
Promise<Stat> | Promise对象。返回文件的具体信息。 |
示例:
let filePath = pathDir + "test.txt";
fs.stat(filePath).then(function (stat) {
console.info("get file info succeed, the size of file is " + stat.size);
}).catch(function (err) {
console.info("get file info failed with error message: " + err.message + ", error code: " + err.code);
});
fs.stat
stat(file: string|number, callback: AsyncCallback<Stat>): void
获取文件信息,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
file | string|number | 是 | 文件应用沙箱路径path或已打开的文件描述符fd。 |
callback | AsyncCallback<Stat> | 是 | 异步获取文件的信息之后的回调。 |
示例:
fs.stat(pathDir, function (err, stat) {
if (err) {
console.info("get file info failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("get file info succeed, the size of file is " + stat.size);
}
});
fs.statSync
statSync(file: string|number): Stat
以同步方法获取文件的信息。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
file | string|number | 是 | 文件应用沙箱路径path或已打开的文件描述符fd。 |
返回值:
类型 | 说明 |
Stat | 表示文件的具体信息。 |
示例:
let stat = fs.statSync(pathDir);
console.info("get file info succeed, the size of file is " + stat.size);
fs.access
access(path: string): Promise<boolean>
检查文件是否存在,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
path | string | 是 | 文件应用沙箱路径。 |
返回值:
类型 | 说明 |
Promise<boolean> | Promise对象。返回boolean。 |
示例:
let filePath = pathDir + "/test.txt";
fs.access(filePath).then(function (res) {
if (res) {
console.info("file exists");
}
}).catch(function (err) {
console.info("access failed with error message: " + err.message + ", error code: " + err.code);
});
fs.access
access(path: string, callback: AsyncCallback<boolean>): void
检查文件是否存在,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
path | string | 是 | 文件应用沙箱路径。 |
callback | AsyncCallback<boolean> | 是 | 异步检查文件是否存在的回调。 |
示例:
let filePath = pathDir + "/test.txt";
fs.access(filePath, function (err, res) {
if (err) {
console.info("access failed with error message: " + err.message + ", error code: " + err.code);
} else {
if (res) {
console.info("file exists");
}
}
});
fs.accessSync
accessSync(path: string): boolean
以同步方法检查文件是否存在。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
path | string | 是 | 文件应用沙箱路径。 |
示例:
let filePath = pathDir + "/test.txt";
try {
let res = fs.accessSync(filePath);
if (res) {
console.info("file exists");
}
} catch(err) {
console.info("accessSync failed with error message: " + err.message + ", error code: " + err.code);
}
fs.close
close(file: File|number): Promise<void>
关闭文件,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
file | File|number | 是 | 已打开的File对象或已打开的文件描述符fd。 |
返回值:
类型 | 说明 |
Promise<void> | Promise对象。无返回值。 |
示例:
let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath);
fs.close(file).then(function () {
console.info("close file succeed");
fs.closeSync(file);
}).catch(function (err) {
console.info("close file failed with error message: " + err.message + ", error code: " + err.code);
});
fs.close
close(file: File|number, callback: AsyncCallback<void>): void
关闭文件,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
file | File|number | 是 | 已打开的File对象或已打开的文件描述符fd。 |
callback | AsyncCallback<void> | 是 | 异步关闭文件之后的回调。 |
示例:
let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath);
fs.close(file, function (err) {
if (err) {
console.info("close file failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("close file success");
}
});
fs.closeSync
closeSync(file: File|number): void
以同步方法关闭文件。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
file | File|number | 是 | 已打开的File对象或已打开的文件描述符fd。 |
示例:
let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath);
fs.closeSync(file);
fs.copyFile
copyFile(src: string|number, dest: string|number, mode?: number): Promise<void>
复制文件,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
src | string|number | 是 | 待复制文件的路径或待复制文件的文件描述符。 |
dest | string|number | 是 | 目标文件路径或目标文件的文件描述符。 |
mode | number | 否 | mode提供覆盖文件的选项,当前仅支持0,且默认为0。 0:完全覆盖目标文件。 |
返回值:
类型 | 说明 |
Promise<void> | Promise对象。无返回值。 |
示例:
let srcPath = pathDir + "srcDir/test.txt";
let dstPath = pathDir + "dstDir/test.txt";
fs.copyFile(srcPath, dstPath).then(function () {
console.info("copy file succeed");
}).catch(function (err) {
console.info("copy file failed with error message: " + err.message + ", error code: " + err.code);
});
fs.copyFile
copyFile(src: string|number, dest: string|number, mode?: number, callback: AsyncCallback<void>): void
复制文件,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
src | string|number | 是 | 待复制文件的路径或待复制文件的文件描述符。 |
dest | string|number | 是 | 目标文件路径或目标文件的文件描述符。 |
mode | number | 否 | mode提供覆盖文件的选项,当前仅支持0,且默认为0。 0:完全覆盖目标文件,未覆盖部分将被裁切掉。 |
callback | AsyncCallback<void> | 是 | 异步复制文件之后的回调。 |
示例:
let srcPath = pathDir + "srcDir/test.txt";
let dstPath = pathDir + "dstDir/test.txt";
fs.copyFile(srcPath, dstPath, function (err) {
if (err) {
console.info("copy file failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("copy file success");
}
});
fs.copyFileSync
copyFileSync(src: string|number, dest: string|number, mode?: number): void
以同步方法复制文件。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
src | string|number | 是 | 待复制文件的路径或待复制文件的文件描述符。 |
dest | string|number | 是 | 目标文件路径或目标文件的文件描述符。 |
mode | number | 否 | mode提供覆盖文件的选项,当前仅支持0,且默认为0。 0:完全覆盖目标文件,未覆盖部分将被裁切掉。 |
示例:
let srcPath = pathDir + "srcDir/test.txt";
let dstPath = pathDir + "dstDir/test.txt";
fs.copyFileSync(srcPath, dstPath);
fs.mkdir
mkdir(path: string): Promise<void>
创建目录,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
path | string | 是 | 目录的应用沙箱路径。 |
返回值:
类型 | 说明 |
Promise<void> | Promise对象。无返回值。 |
示例:
let dirPath = pathDir + '/testDir';
fs.mkdir(dirPath).then(function () {
console.info("mkdir succeed");
}).catch(function (err) {
console.info("mkdir failed with error message: " + err.message + ", error code: " + err.code);
});
fs.mkdir
mkdir(path: string, callback: AsyncCallback<void>): void
创建目录,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
path | string | 是 | 目录的应用沙箱路径。 |
callback | AsyncCallback<void> | 是 | 异步创建目录操作完成之后的回调。 |
示例:
let dirPath = pathDir + '/testDir';
fs.mkdir(dirPath, function (err) {
if (err) {
console.info("mkdir failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("mkdir success");
}
});
fs.mkdirSync
mkdirSync(path: string): void
以同步方法创建目录。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
path | string | 是 | 目录的应用沙箱路径。 |
示例:
let dirPath = path + '/testDir';
fs.mkdirSync(dirPath);
fs.open
open(path: string, mode?: number): Promise<File>
打开文件,使用Promise异步回调。支持使用URI打开文件。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
path | string | 是 | 文件的应用沙箱路径或文件URI。 |
mode | number | 否 | 打开文件的选项,必须指定如下选项中的一个,默认以只读方式打开: - OpenMode.READ_ONLY(0o0):只读打开。 - OpenMode.WRITE_ONLY(0o1):只写打开。 - OpenMode.READ_WRITE(0o2):读写打开。 给定如下功能选项,以按位或的方式追加,默认不给定任何额外选项: - OpenMode.CREATE(0o100):若文件不存在,则创建文件。 - OpenMode.TRUNC(0o1000):如果文件存在且以只写或读写的方式打开文件,则将其长度裁剪为零。 - OpenMode.APPEND(0o2000):以追加方式打开,后续写将追加到文件末尾。 - OpenMode.NONBLOCK(0o4000):如果path指向FIFO、块特殊文件或字符特殊文件,则本次打开及后续 IO 进行非阻塞操作。 - OpenMode.DIR(0o200000):如果path不指向目录,则出错。 - OpenMode.NOFOLLOW(0o400000):如果path指向符号链接,则出错。 - OpenMode.SYNC(0o4010000):以同步IO的方式打开文件。 |
返回值:
类型 | 说明 |
Promise<File> | Promise对象。返回File对象。 |
示例:
let filePath = pathDir + "/test.txt";
fs.open(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE).then(function (file) {
console.info("file fd: " + file.fd);
}).catch(function (err) {
console.info("open file failed with error message: " + err.message + ", error code: " + err.code);
});
fs.open
open(path: string, mode?: number, callback: AsyncCallback<File>): void
打开文件,使用callback异步回调。支持使用URI打开文件。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
path | string | 是 | 文件的应用沙箱路径或URI。 |
mode | number | 否 | 打开文件的选项,必须指定如下选项中的一个,默认以只读方式打开: - OpenMode.READ_ONLY(0o0):只读打开。 - OpenMode.WRITE_ONLY(0o1):只写打开。 - OpenMode.READ_WRITE(0o2):读写打开。 给定如下功能选项,以按位或的方式追加,默认不给定任何额外选项: - OpenMode.CREATE(0o100):若文件不存在,则创建文件。 - OpenMode.TRUNC(0o1000):如果文件存在且以只写或读写的方式打开文件,则将其长度裁剪为零。 - OpenMode.APPEND(0o2000):以追加方式打开,后续写将追加到文件末尾。 - OpenMode.NONBLOCK(0o4000):如果path指向FIFO、块特殊文件或字符特殊文件,则本次打开及后续 IO 进行非阻塞操作。 - OpenMode.DIR(0o200000):如果path不指向目录,则出错。 - OpenMode.NOFOLLOW(0o400000):如果path指向符号链接,则出错。 - OpenMode.SYNC(0o4010000):以同步IO的方式打开文件。 |
示例:
let filePath = pathDir + "/test.txt";
fs.open(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE, function (err, file) {
if (err) {
console.info("mkdir failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("file fd: " + file.fd);
}
});
fs.openSync
openSync(path: string, mode?: number): File
以同步方法打开文件。支持使用URI打开文件。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
path | string | 是 | 打开文件的应用沙箱路径或URI。 |
mode | number | 否 | 打开文件的选项,必须指定如下选项中的一个,默认以只读方式打开: - OpenMode.READ_ONLY(0o0):只读打开。 - OpenMode.WRITE_ONLY(0o1):只写打开。 - OpenMode.READ_WRITE(0o2):读写打开。 给定如下功能选项,以按位或的方式追加,默认不给定任何额外选项: - OpenMode.CREATE(0o100):若文件不存在,则创建文件。 - OpenMode.TRUNC(0o1000):如果文件存在且以只写或读写的方式打开文件,则将其长度裁剪为零。 - OpenMode.APPEND(0o2000):以追加方式打开,后续写将追加到文件末尾。 - OpenMode.NONBLOCK(0o4000):如果path指向FIFO、块特殊文件或字符特殊文件,则本次打开及后续 IO 进行非阻塞操作。 - OpenMode.DIR(0o200000):如果path不指向目录,则出错。 - OpenMode.NOFOLLOW(0o400000):如果path指向符号链接,则出错。 - OpenMode.SYNC(0o4010000):以同步IO的方式打开文件。 |
返回值:
类型 | 说明 |
File | 打开的File对象。 |
示例:
let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
console.info("file fd: " + file.fd);
fs.closeSync(file);
fs.read
read(fd: number, buffer: ArrayBuffer, options?: { offset?: number; length?: number; }): Promise<number>
从文件读取数据,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
fd | number | 是 | 已打开的文件描述符。 |
buffer | ArrayBuffer | 是 | 用于保存读取到的文件数据的缓冲区。 |
options | Object | 否 | 支持如下选项: - offset,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读。 - length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度。 |
返回值:
类型 | 说明 |
Promise<number> | Promise对象。返回读取的结果。 |
示例:
let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE);
let buf = new ArrayBuffer(4096);
fs.read(file.fd, buf).then(function (readLen) {
console.info("read file data succeed");
console.info(String.fromCharCode.apply(null, new Uint8Array(readLen)));
fs.closeSync(file);
}).catch(function (err) {
console.info("read file data failed with error message: " + err.message + ", error code: " + err.code);
});
fs.read
read(fd: number, buffer: ArrayBuffer, options?: { offset?: number; length?: number; }, callback: AsyncCallback<number>): void
从文件读取数据,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
fd | number | 是 | 已打开的文件描述符。 |
buffer | ArrayBuffer | 是 | 用于保存读取到的文件数据的缓冲区。 |
options | Object | 否 | 支持如下选项: - offset,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读。 - length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度。 |
callback | AsyncCallback<number> | 是 | 异步读取数据之后的回调。 |
示例:
let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE);
let buf = new ArrayBuffer(4096);
fs.read(file.fd, buf, function (err, readLen) {
if (err) {
console.info("mkdir failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("read file data succeed");
console.info(String.fromCharCode.apply(null, new Uint8Array(readLen)));
fs.closeSync(file);
}
});
fs.readSync
readSync(fd: number, buffer: ArrayBuffer, options?: { offset?: number; length?: number; }): number
以同步方法从文件读取数据。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
fd | number | 是 | 已打开的文件描述符。 |
buffer | ArrayBuffer | 是 | 用于保存读取到的文件数据的缓冲区。 |
options | Object | 否 | 支持如下选项: - offset,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读。 - length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度。 |
返回值:
类型 | 说明 |
number | 实际读取的长度。 |
示例:
let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE);
let buf = new ArrayBuffer(4096);
let num = fs.readSync(file.fd, buf);
fs.closeSync(file);
fs.rmdir
rmdir(path: string): Promise<void>
删除整个目录,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
path | string | 是 | 目录的应用沙箱路径。 |
返回值:
类型 | 说明 |
Promise<void> | Promise对象。无返回值。 |
示例:
let dirPath = pathDir + '/testDir';
fs.rmdir(dirPath).then(function () {
console.info("rmdir succeed");
}).catch(function (err) {
console.info("rmdir failed with error message: " + err.message + ", error code: " + err.code);
});
fs.rmdir
rmdir(path: string, callback: AsyncCallback<void>): void
删除整个目录,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
path | string | 是 | 目录的应用沙箱路径。 |
callback | AsyncCallback<void> | 是 | 异步删除目录之后的回调。 |
示例:
let dirPath = pathDir + '/testDir';
fs.rmdir(dirPath, function (err) {
if (err) {
console.info("rmdir failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("rmdir succeed");
}
});
fs.rmdirSync
rmdirSync(path: string): void
以同步方法删除目录。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
path | string | 是 | 目录的应用沙箱路径。 |
示例:
let dirPath = pathDir + '/testDir';
fs.rmdirSync(dirPath);
fs.unlink
unlink(path: string): Promise<void>
删除单个文件,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
path | string | 是 | 文件的应用沙箱路径。 |
返回值:
类型 | 说明 |
Promise<void> | Promise对象。无返回值。 |
示例:
let filePath = pathDir + "/test.txt";
fs.unlink(filePath).then(function () {
console.info("remove file succeed");
}).catch(function (err) {
console.info("remove file failed with error message: " + err.message + ", error code: " + err.codeor);
});
fs.unlink
unlink(path: string, callback: AsyncCallback<void>): void
删除文件,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
path | string | 是 | 文件的应用沙箱路径。 |
callback | AsyncCallback<void> | 是 | 异步删除文件之后的回调。 |
示例:
let filePath = pathDir + "/test.txt";
fs.unlink(filePath, function (err) {
if (err) {
console.info("remove file failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("remove file succeed");
}
});
fs.unlinkSync
unlinkSync(path: string): void
以同步方法删除文件。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
path | string | 是 | 文件的应用沙箱路径。 |
示例:
let filePath = pathDir + "/test.txt";
fs.unlinkSync(filePath);
fs.write
write(fd: number, buffer: ArrayBuffer|string, options?: { offset?: number; length?: number; encoding?: string; }): Promise<number>
将数据写入文件,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
fd | number | 是 | 已打开的文件描述符。 |
buffer | ArrayBuffer|string | 是 | 待写入文件的数据,可来自缓冲区或字符串。 |
options | Object | 否 | 支持如下选项: - offset,number类型,表示期望写入文件的位置。可选,默认从当前位置开始写。 - length,number类型,表示期望写入数据的长度。可选,默认缓冲区长度。 - encoding,string类型,当数据是string类型时有效,表示数据的编码方式,默认 'utf-8'。当前仅支持 'utf-8'。 |
返回值:
类型 | 说明 |
Promise<number> | Promise对象。返回实际写入的长度。 |
示例:
let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
fs.write(file.fd, "hello, world").then(function (writeLen) {
console.info("write data to file succeed and size is:" + writeLen);
fs.closeSync(file);
}).catch(function (err) {
console.info("write data to file failed with error message: " + err.message + ", error code: " + err.code);
});
fs.write
write(fd: number, buffer: ArrayBuffer|string, options?: { offset?: number; length?: number; encoding?: string; }, callback: AsyncCallback<number>): void
将数据写入文件,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
fd | number | 是 | 已打开的文件描述符。 |
buffer | ArrayBuffer|string | 是 | 待写入文件的数据,可来自缓冲区或字符串。 |
options | Object | 否 | 支持如下选项: - offset,number类型,表示期望写入文件的位置。可选,默认从当前位置开始写。 - length,number类型,表示期望写入数据的长度。可选,默认缓冲区长度。 - encoding,string类型,当数据是string类型时有效,表示数据的编码方式,默认 'utf-8'。当前仅支持 'utf-8'。 |
callback | AsyncCallback<number> | 是 | 异步将数据写入完成后执行的回调函数。 |
示例:
let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
fs.write(file.fd, "hello, world", function (err, writeLen) {
if (err) {
console.info("write failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("write data to file succeed and size is:" + writeLen);
fs.closeSync(file);
}
});
fs.writeSync
writeSync(fd: number, buffer: ArrayBuffer|string, options?: { offset?: number; length?: number; encoding?: string; }): number
以同步方法将数据写入文件。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
fd | number | 是 | 已打开的文件描述符。 |
buffer | ArrayBuffer|string | 是 | 待写入文件的数据,可来自缓冲区或字符串。 |
options | Object | 否 | 支持如下选项: - offset,number类型,表示期望写入文件的位置。可选,默认从当前位置开始写。 - length,number类型,表示期望写入数据的长度。可选,默认缓冲区长度。 - encoding,string类型,当数据是string类型时有效,表示数据的编码方式,默认 'utf-8'。当前仅支持 'utf-8'。 |
返回值:
类型 | 说明 |
number | 实际写入的长度。 |
示例:
let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
let writeLen = fs.writeSync(file.fd, "hello, world");
console.info("write data to file succeed and size is:" + writeLen);
fs.closeSync(file);
fs.truncate
truncate(file: string|number, len?: number): Promise<void>
截断文件,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
file | string|number | 是 | 文件的应用沙箱路径或已打开的文件描述符fd。 |
len | number | 否 | 文件截断后的长度,以字节为单位。 |
返回值:
类型 | 说明 |
Promise<void> | Promise对象。无返回值。 |
示例:
let filePath = pathDir + "/test.txt";
let len = 5;
fs.truncate(filePath, len).then(function () {
console.info("truncate file succeed");
}).catch(function (err) {
console.info("truncate file failed with error message: " + err.message + ", error code: " + err.code);
});
fs.truncate
truncate(file: string|number, len?: number, callback: AsyncCallback<void>): void
截断文件,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
file | string|number | 是 | 文件的应用沙箱路径或已打开的文件描述符fd。 |
len | number | 否 | 文件截断后的长度,以字节为单位。 |
callback | AsyncCallback<void> | 是 | 回调函数,本调用无返回值。 |
示例:
let filePath = pathDir + "/test.txt";
let len = 5;
fs.truncate(filePath, len, function (err) {
if (err) {
console.info("truncate failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("truncate success");
}
});
fs.truncateSync
truncateSync(file: string|number, len?: number): void
以同步方法截断文件。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
file | string|number | 是 | 文件的应用沙箱路径或已打开的文件描述符fd。 |
len | number | 否 | 文件截断后的长度,以字节为单位。 |
示例:
let filePath = pathDir + "/test.txt";
let len = 5;
fs.truncateSync(filePath, len);
fs.readText
readText(filePath: string, options?: { offset?: number; length?: number; encoding?: string; }): Promise<string>
基于文本方式读取文件(即直接读取文件的文本内容),使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
filePath | string | 是 | 文件的应用沙箱路径。 |
options | Object | 否 | 支持如下选项: - offset,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读取。 - length,number类型,表示期望读取数据的长度。可选,默认文件长度。 - encoding,string类型,当数据是 string 类型时有效,表示数据的编码方式,默认 'utf-8',仅支持 'utf-8'。 |
返回值:
类型 | 说明 |
Promise<string> | Promise对象。返回读取文件的内容。 |
示例:
let filePath = pathDir + "/test.txt";
fs.readText(filePath).then(function (str) {
console.info("readText succeed:" + str);
}).catch(function (err) {
console.info("readText failed with error message: " + err.message + ", error code: " + err.code);
});
fs.readText
readText(filePath: string, options?: { offset?: number; length?: number; encoding?: string; }, callback: AsyncCallback<string>): void
基于文本方式读取文件(即直接读取文件的文本内容),使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
filePath | string | 是 | 文件的应用沙箱路径。 |
options | Object | 否 | 支持如下选项: - offset,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读取。 - length,number类型,表示期望读取数据的长度。可选,默认文件长度。 - encoding,string类型,表示数据的编码方式,默认 'utf-8',仅支持 'utf-8'。 |
callback | AsyncCallback<string> | 是 | 回调函数,返回读取文件的内容。 |
示例:
let filePath = pathDir + "/test.txt";
fs.readText(filePath, { offset: 1, encoding: 'UTF-8' }, function (err, str) {
if (err) {
console.info("read text failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("readText succeed:" + str);
}
});
fs.readTextSync
readTextSync(filePath: string, options?: { offset?: number; length?: number; encoding?: string; }): string
以同步方法基于文本方式读取文件(即直接读取文件的文本内容)。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
filePath | string | 是 | 文件的应用沙箱路径。 |
options | Object | 否 | 支持如下选项: - offset,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读取。 - length,number类型,表示期望读取数据的长度。可选,默认文件长度。 - encoding,string类型,当数据是 string 类型时有效,表示数据的编码方式,默认 'utf-8',仅支持 'utf-8'。 |
返回值:
类型 | 说明 |
string | 返回读取文件的内容。 |
示例:
let filePath = pathDir + "/test.txt";
let str = fs.readTextSync(filePath, {offset: 1, length: 3});
console.info("readText succeed:" + str);
fs.lstat
lstat(path: string): Promise<Stat>
获取链接文件信息,使用Promise异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
path | string | 是 | 文件的应用沙箱路径。 |
返回值:
类型 | 说明 |
Promise<Stat> | promise对象,返回文件对象,表示文件的具体信息,详情见stat。 |
示例:
let filePath = pathDir + "/test.txt";
fs.lstat(filePath).then(function (stat) {
console.info("get link status succeed, the size of file is" + stat.size);
}).catch(function (err) {
console.info("get link status failed with error message: " + err.message + ", error code: " + err.code);
});
fs.lstat
lstat(path: string, callback: AsyncCallback<Stat>): void
获取链接文件信息,使用callback异步回调。
系统能力:SystemCapability.FileManagement.File.FileIO
参数:
参数名 | 类型 | 必填 | 说明 |
path | string | 是 | 文件的应用沙箱路径。 |
callback | AsyncCallback<Stat> | 是 | 回调函数,返回文件的具体信息。 |
示例:
let filePath = pathDir + "/test.txt";
fs.lstat(filePath, function (err, stat) {
if (err) {
console.info("lstat failed with error message: " + err.message + ", error code: " + err.code);
} else {
console.info("get link status succeed, the size of file is" + stat.size);
}
});