HarmonyOS API:@ohos.file.fs (文件管理)

joytrian
发布于 2023-4-6 17:07
浏览
0收藏

版本: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(): 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的方式打开文件。


文章转载自:​​https://developer.harmonyos.com/cn/docs/documentation/doc-references-V3/js-apis-file-fs-0000001451843016-V3?catalogVersion=V3#ZH-CN_TOPIC_0000001451843016__readsync​

已于2023-4-6 17:07:11修改
收藏
回复
举报
回复
    相关推荐