数据写入文件

2024-12-04 16:51:07
194次阅读
0个评论

fs.write(Promise异步返回)

write(fd: number, buffer: ArrayBuffer | string, options?: WriteOptions): Promise

将数据写入文件,使用Promise异步返回。

原子化服务API:从API version 11开始,该接口支持在原子化服务中使用。

参数:

参数名 类型 必填 说明
fd number 已打开的文件描述符。
buffer ArrayBuffer | string 待写入文件的数据,可来自缓冲区或字符串。
options WriteOptions 支持如下选项: - offset,number类型,表示期望写入文件的位置。可选,默认从当前位置开始写。 - length,number类型,表示期望写入数据的长度。可选,默认缓冲区长度。 - encoding,string类型,当数据是string类型时有效,表示数据的编码方式,默认 ‘utf-8’。当前仅支持 ‘utf-8’。

返回值:

类型 说明
Promise Promise对象。返回实际写入的数据长度,单位字节。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

import { BusinessError } from '@kit.BasicServicesKit';
let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
let str: string = "hello, world";
fs.write(file.fd, str).then((writeLen: number) => {
  console.info("write data to file succeed and size is:" + writeLen);
}).catch((err: BusinessError) => {
  console.error("write data to file failed with error message: " + err.message + ", error code: " + err.code);
}).finally(() => {
  fs.closeSync(file);
});

fs.write(Callback异步返回)

write(fd: number, buffer: ArrayBuffer | string, options?: WriteOptions, callback: AsyncCallback): void

将数据写入文件,使用callback异步回调。

原子化服务API:从API version 11开始,该接口支持在原子化服务中使用。

参数:

参数名 类型 必填 说明
fd number 已打开的文件描述符。
buffer ArrayBuffer | string 待写入文件的数据,可来自缓冲区或字符串。
options WriteOptions 支持如下选项: - offset,number类型,表示期望写入文件的位置。可选,默认从当前位置开始写。 - length,number类型,表示期望写入数据的长度。可选,默认缓冲区长度。 - encoding,string类型,当数据是string类型时有效,表示数据的编码方式,默认 ‘utf-8’。当前仅支持 ‘utf-8’。
callback AsyncCallback 异步将数据写入完成后执行的回调函数。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

import { BusinessError } from '@kit.BasicServicesKit';
let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
let str: string = "hello, world";
fs.write(file.fd, str, (err: BusinessError, writeLen: number) => {
  if (err) {
    console.error("write data to file 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?: WriteOptions): number

以同步方法将数据写入文件。

原子化服务API:从API version 11开始,该接口支持在原子化服务中使用。

参数:

参数名 类型 必填 说明
fd number 已打开的文件描述符。
buffer ArrayBuffer | string 待写入文件的数据,可来自缓冲区或字符串。
options WriteOptions 支持如下选项: - offset,number类型,表示期望写入文件的位置。可选,默认从当前位置开始写。 - length,number类型,表示期望写入数据的长度。可选,默认缓冲区长度。 - encoding,string类型,当数据是string类型时有效,表示数据的编码方式,默认 ‘utf-8’。当前仅支持 ‘utf-8’。

返回值:

类型 说明
number 返回实际写入的数据长度,单位字节。

错误码:

接口抛出错误码的详细介绍请参见基础文件IO错误码

示例:

let filePath = pathDir + "/test.txt";
let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
let str: string = "hello, world";
let writeLen = fs.writeSync(file.fd, str);
console.info("write data to file succeed and size is:" + writeLen);
fs.closeSync(file);
收藏00

登录 后评论。没有帐号? 注册 一个。