diff --git a/zh-cn/application-dev/js-reference/Readme-CN.md b/zh-cn/application-dev/js-reference/Readme-CN.md
index 4a26b5c26981344e69a67728b508787fd5e5f9ee..33a5316b4272315712710fd67df268180b4679ad 100755
--- a/zh-cn/application-dev/js-reference/Readme-CN.md
+++ b/zh-cn/application-dev/js-reference/Readme-CN.md
@@ -105,4 +105,5 @@
- [国际化](国际化.md)
- [资源管理](资源管理.md)
- [升级](升级.md)
-
+ - [文件管理](文件管理.md)
+ - [文件存储](文件存储.md)
\ No newline at end of file
diff --git "a/zh-cn/application-dev/js-reference/\346\226\207\344\273\266\345\255\230\345\202\250.md" "b/zh-cn/application-dev/js-reference/\346\226\207\344\273\266\345\255\230\345\202\250.md"
new file mode 100644
index 0000000000000000000000000000000000000000..61b7a80b1de548aa2f3d8af2ecca85436add985e
--- /dev/null
+++ "b/zh-cn/application-dev/js-reference/\346\226\207\344\273\266\345\255\230\345\202\250.md"
@@ -0,0 +1,579 @@
+# 文件存储
+
+更新时间: 2021-07-09 15:29
+
+说明
+
+从API Version 6开始,该接口不再维护,推荐使用[文件管理接口(@ohos.fileio)](文件管理.md)进行文件存储管理。
+
+涉及到文件目录的请参考下述表格:
+
+
+
目录类型
+ |
+路径前缀
+ |
+访问可见性
+ |
+说明
+ |
+
+
+临时目录
+ |
+internal://cache/
+ |
+仅本应用可见
+ |
+可读写,随时可能清除,不保证持久性。一般用作下载临时目录或缓存目录。
+ |
+
+应用私有目录
+ |
+internal://app/
+ |
+仅本应用可见
+ |
+随应用卸载删除。
+ |
+
+
+
+
+## 支持设备
+
+
+
+| API | 手机 | 平板 | 智慧屏 | 智能穿戴 |
+| --------------------- | ---- | ---- | ------ | -------- |
+| file.move | 支持 | 支持 | 支持 | 支持 |
+| file.copy | 支持 | 支持 | 支持 | 支持 |
+| file.list | 支持 | 支持 | 支持 | 支持 |
+| file.get | 支持 | 支持 | 支持 | 支持 |
+| file.delete | 支持 | 支持 | 支持 | 支持 |
+| file.writeText | 支持 | 支持 | 支持 | 支持 |
+| file.writeArrayBuffer | 支持 | 支持 | 支持 | 支持 |
+| file.readText | 支持 | 支持 | 支持 | 支持 |
+| file.readArrayBuffer | 支持 | 支持 | 支持 | 支持 |
+| file.access | 支持 | 支持 | 支持 | 支持 |
+| file.mkdir | 支持 | 支持 | 支持 | 支持 |
+| file.rmdir | 支持 | 支持 | 支持 | 支持 |
+
+说明
+
+file.writeText、file.writeArrayBuffer、file.readText和file.readArrayBuffer仅支持文本文档读写。
+
+## 导入模块
+
+
+
+```javascript
+import file from '@system.file';
+```
+
+## 权限列表
+
+
+
+无
+
+## file.move(OBJECT)
+
+
+
+将指定文件移动到其他指定位置。
+
+- 参数
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | -------- | ---- | ----------------------------------------------------- |
+ | srcUri | string | 是 | 要移动的文件的uri。 |
+ | dstUri | string | 是 | 文件要移动到的位置的uri。 |
+ | success | Function | 否 | 接口调用成功的回调函数,返回文件要移动到的位置的uri。 |
+ | fail | Function | 否 | 接口调用失败的回调函数。 |
+ | complete | Function | 否 | 接口调用结束的回调函数。 |
+
+ fail返回错误代码:
+
+ | 错误码 | 说明 |
+ | ------ | ------------------ |
+ | 202 | 出现参数错误。 |
+ | 300 | 出现I/O错误。 |
+ | 301 | 文件或目录不存在。 |
+
+- 示例
+
+ ```javascript
+ file.move({
+ srcUri: 'internal://app/myfiles1',
+ dstUri: 'internal://app/myfiles2',
+ success: function(uri) {
+ console.log('call success callback success');
+ },
+ fail: function(data, code) {
+ console.error('call fail callback fail, code: ' + code + ', data: ' + data);
+ },
+ });
+ ```
+
+## file.copy(OBJECT)
+
+
+
+将指定文件拷贝并存储到指定位置,接口所使用的URI描述详见[文件组织](https://developer.harmonyos.com/cn/docs/documentation/doc-references/js-framework-file-0000000000611396)。
+
+- 参数
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | -------- | ---- | ------------------------------------------------------------ |
+ | srcUri | string | 是 | 要拷贝的文件的uri。 |
+ | dstUri | string | 是 | 文件要拷贝到的位置的uri。 不支持用应用资源路径或tmp类型的uri。 |
+ | success | Function | 否 | 接口调用成功的回调函数,返回文件要拷贝到的位置的uri。 |
+ | fail | Function | 否 | 接口调用失败的回调函数。 |
+ | complete | Function | 否 | 接口调用结束的回调函数。 |
+
+ fail返回错误代码:
+
+ | 错误码 | 说明 |
+ | ------ | ------------------ |
+ | 202 | 出现参数错误。 |
+ | 300 | 出现I/O错误。 |
+ | 301 | 文件或目录不存在。 |
+
+- 示例
+
+ ```javascript
+ file.copy({
+ srcUri: 'internal://app/file.txt',
+ dstUri: 'internal://app/file_copy.txt',
+ success: function(uri) {
+ console.log('call success callback success');
+ },
+ fail: function(data, code) {
+ console.error('call fail callback fail, code: ' + code + ', data: ' + data);
+ },
+ });
+ ```
+
+## file.list(OBJECT)
+
+
+
+获取指定路径下全部文件的列表,接口所使用的 URI 描述详见[文件组织](https://developer.harmonyos.com/cn/docs/documentation/doc-references/js-framework-file-0000000000611396)。
+
+- 参数
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | -------- | ---- | ------------------------ |
+ | uri | string | 是 | 目录uri。 |
+ | success | Function | 否 | 接口调用成功的回调函数。 |
+ | fail | Function | 否 | 接口调用失败的回调函数。 |
+ | complete | Function | 否 | 接口调用结束的回调函数。 |
+
+ success返回值:
+
+ | 参数名 | 类型 | 说明 |
+ | -------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
+ | fileList | Array<[FileInfo](https://developer.harmonyos.com/cn/docs/documentation/doc-references/js-apis-file-storage-0000000000629445#ZH-CN_TOPIC_0000001102026082__table156231426174610)> | 获取的文件列表,其中每个文件的信息的格式为: **{** **uri:'file1',** **lastModifiedTime:1589965924479,** **length:10240,** **type: 'file'** **}** |
+
+
+
+ | 参数名 | 类型 | 说明 |
+ | ---------------- | ------ | ------------------------------------------------------------ |
+ | uri | string | 文件的 uri。 |
+ | lastModifiedTime | number | 文件上一次保存时的时间戳,显示从1970/01/01 00:00:00 GMT到当前时间的毫秒数。 |
+ | length | number | 文件的大小,单位为字节。 |
+ | type | string | 文件的类型,可选值为: dir:目录;file:文件。 |
+
+ fail返回错误代码:
+
+ | 错误码 | 说明 |
+ | ------ | ------------------ |
+ | 202 | 出现参数错误。 |
+ | 300 | 出现I/O错误。 |
+ | 301 | 文件或目录不存在。 |
+
+- 示例
+
+ ```javascript
+ file.list({
+ uri: 'internal://app/pic',
+ success: function(data) {
+ console.log(data.fileList);
+ },
+ fail: function(data, code) {
+ console.error('call fail callback fail, code: ' + code + ', data: ' + data);
+ },
+ });
+ ```
+
+## file.get(OBJECT)
+
+
+
+获取指定本地文件的信息,URI请参考[文件组织](https://developer.harmonyos.com/cn/docs/documentation/doc-references/js-framework-file-0000000000611396)。
+
+- 参数
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | --------- | -------- | ---- | --------------------------------------------- |
+ | uri | string | 是 | 文件的uri。 |
+ | recursive | boolean | 否 | 是否进行递归获取子目录文件列表,缺省为false。 |
+ | success | Function | 否 | 接口调用成功的回调函数。 |
+ | fail | Function | 否 | 接口调用失败的回调函数。 |
+ | complete | Function | 否 | 接口调用结束的回调函数。 |
+
+ success返回值:
+
+ | 参数名 | 类型 | 说明 |
+ | ---------------- | ------ | ------------------------------------------------------------ |
+ | uri | string | 文件的uri。 |
+ | length | number | 文件字节长。 |
+ | lastModifiedTime | number | 文件保存时的时间戳,从1970/01/01 00:00:00到当前时间的毫秒数。 |
+ | type | string | 文件类型,可选值为: dir:目录;file:文件。 |
+ | subFiles | Array | 文件列表。 |
+
+ fail返回错误代码:
+
+ | 错误码 | 说明 |
+ | ------ | ------------------ |
+ | 202 | 出现参数错误。 |
+ | 300 | 出现I/O错误。 |
+ | 301 | 文件或目录不存在。 |
+
+- 示例
+
+ ```javascript
+ file.get({
+ uri: 'internal://app/file',
+ success: function(data) {
+ console.log(data.uri);
+ },
+ fail: function(data, code) {
+ console.error('call fail callback fail, code: ' + code + ', data: ' + data);
+ },
+ });
+ ```
+
+## file.delete(OBJECT)
+
+
+
+删除本地文件,使用的URI参考[文件组织](https://developer.harmonyos.com/cn/docs/documentation/doc-references/js-framework-file-0000000000611396)。
+
+- 参数
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | -------- | ---- | ----------------------------------- |
+ | uri | string | 是 | 删除文件的uri,不能是应用资源路径。 |
+ | success | Function | 否 | 接口调用成功的回调函数。 |
+ | fail | Function | 否 | 接口调用失败的回调函数。 |
+ | complete | Function | 否 | 接口调用结束的回调函数。 |
+
+ fail返回错误代码:
+
+ | 错误码 | 说明 |
+ | ------ | ------------------ |
+ | 202 | 参数错误。 |
+ | 300 | I/O错误。 |
+ | 301 | 文件或目录不存在。 |
+
+- 示例
+
+ ```javascript
+ file.delete({
+ uri: 'internal://app/my_file',
+ success: function() {
+ console.log('call delete success.');
+ },
+ fail: function(data, code) {
+ console.error('call fail callback fail, code: ' + code + ', data: ' + data);
+ },
+ });
+ ```
+
+## file.writeText(OBJECT)
+
+
+
+写文本内容到指定文件。
+
+- 参数
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | -------- | ---- | --------------------------------------- |
+ | uri | string | 是 | 本地文件uri,如果文件不存在会创建文件。 |
+ | text | string | 是 | 写入的字符串。 |
+ | encoding | string | 否 | 编码格式,默认为UTF-8。 |
+ | append | boolean | 否 | 是否追加模式,默认为false。 |
+ | success | Function | 否 | 接口调用成功的回调函数。 |
+ | fail | Function | 否 | 接口调用失败的回调函数。 |
+ | complete | Function | 否 | 接口调用结束的回调函数。 |
+
+ fail返回错误代码:
+
+ | 错误码 | 说明 |
+ | ------ | ------------------ |
+ | 202 | 参数错误。 |
+ | 300 | I/O错误。 |
+ | 301 | 文件或目录不存在。 |
+
+- 示例
+
+ ```javascript
+ file.writeText({
+ uri: 'internal://app/workspace/test.txt',
+ text: 'Text that just for test.',
+ success: function() {
+ console.log('call writeText success.');
+ },
+ fail: function(data, code) {
+ console.error('call fail callback fail, code: ' + code + ', data: ' + data);
+ },
+ });
+ ```
+
+## file.writeArrayBuffer(OBJECT)
+
+
+
+写Buffer内容到指定文件。
+
+- 参数
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | ---------- | ---- | ------------------------------------------------------------ |
+ | uri | string | 是 | 本地文件uri,如果文件不存在会创建文件。 |
+ | buffer | Uint8Array | 是 | 写入的Buffer。 |
+ | position | number | 否 | 文件开始写入数据的位置的偏移量,默认为0。 |
+ | append | boolean | 否 | 是否追加模式,默认为false。当设置为true时,position参数无效。 |
+ | success | Function | 否 | 接口调用成功的回调函数。 |
+ | fail | Function | 否 | 接口调用失败的回调函数。 |
+ | complete | Function | 否 | 接口调用结束的回调函数。 |
+
+ fail返回错误代码:
+
+ | 错误码 | 说明 |
+ | ------ | ------------------ |
+ | 202 | 出现参数错误。 |
+ | 300 | 出现I/O错误。 |
+ | 301 | 文件或目录不存在。 |
+
+- 示例
+
+ ```javascript
+ file.writeArrayBuffer({
+ uri: 'internal://app/workspace/test',
+ buffer: buffer, //buffer为Uint8Array类型
+ success: function() {
+ console.log('call writeArrayBuffer success.');
+ },
+ fail: function(data, code) {
+ console.error('call fail callback fail, code: ' + code + ', data: ' + data);
+ },
+ });
+ ```
+
+## file.readText(OBJECT)
+
+
+
+从指定文件中读取文本内容。
+
+- 参数
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | -------- | ---- | ------------------------ |
+ | uri | string | 是 | 本地文件uri。 |
+ | encoding | string | 否 | 编码格式,缺省为UTF-8。 |
+ | success | Function | 否 | 接口调用成功的回调函数。 |
+ | fail | Function | 否 | 接口调用失败的回调函数。 |
+ | complete | Function | 否 | 接口调用结束的回调函数。 |
+
+ success返回值:
+
+ | 参数名 | 类型 | 说明 |
+ | ------ | ------ | ------------------ |
+ | text | string | 读取到的文本内容。 |
+
+ fail返回错误代码:
+
+ | 错误码 | 说明 |
+ | ------ | ------------------ |
+ | 202 | 出现参数错误。 |
+ | 300 | 出现I/O错误。 |
+ | 301 | 文件或目录不存在。 |
+
+- 示例
+
+ ```javascript
+ file.readText({
+ uri: 'internal://app/workspace/text.txt',
+ success: function(data) {
+ console.log('call readText success: ' + data.text);
+ },
+ fail: function(data, code) {
+ console.error('call fail callback fail, code: ' + code + ', data: ' + data);
+ },
+ });
+ ```
+
+## file.readArrayBuffer(OBJECT)
+
+
+
+从指定文件中读取Buffer内容。
+
+- 参数
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | -------- | ---- | -------------------------------------- |
+ | uri | string | 是 | 本地文件uri。 |
+ | position | number | 否 | 读取的起始位置,缺省为文件的起始位置。 |
+ | length | number | 否 | 需要读取的长度,缺省则读取到文件结尾。 |
+ | success | Function | 否 | 接口调用成功的回调函数。 |
+ | fail | Function | 否 | 接口调用失败的回调函数。 |
+ | complete | Function | 否 | 接口调用结束的回调函数。 |
+
+ success返回值:
+
+ | 参数名 | 类型 | 说明 |
+ | ------ | ---------- | ------------------ |
+ | buffer | Uint8Array | 读取到的文件内容。 |
+
+ fail返回错误代码:
+
+ | 错误码 | 说明 |
+ | ------ | ------------------ |
+ | 202 | 出现参数错误。 |
+ | 300 | 出现I/O错误。 |
+ | 301 | 文件或目录不存在。 |
+
+- 示例
+
+ ```javascript
+ file.readArrayBuffer({
+ uri: 'internal://app/workspace/test',
+ position: 10,
+ length: 200,
+ success: function(data) {
+ console.log('call readArrayBuffer success: ' + data.buffer);
+ },
+ fail: function(data, code) {
+ console.error('call fail callback fail, code: ' + code + ', data: ' + data);
+ },
+ });
+ ```
+
+## file.access(OBJECT)
+
+
+
+判断指定文件或目录是否存在。
+
+- 参数
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | -------- | -------- | ---- | ------------------------ |
+ | uri | string | 是 | 目录或文件uri。 |
+ | success | Function | 否 | 接口调用成功的回调函数。 |
+ | fail | Function | 否 | 接口调用失败的回调函数。 |
+ | complete | Function | 否 | 接口调用结束的回调函数。 |
+
+ fail返回错误代码:
+
+ | 错误码 | 说明 |
+ | ------ | ------------------ |
+ | 202 | 出现参数错误。 |
+ | 300 | 出现I/O 错误。 |
+ | 301 | 文件或目录不存在。 |
+
+- 示例
+
+ ```javascript
+ file.access({
+ uri: 'internal://app/test',
+ success: function() {
+ console.log('call access success.');
+ },
+ fail: function(data, code) {
+ console.error('call fail callback fail, code: ' + code + ', data: ' + data);
+ },
+ });
+ ```
+
+## file.mkdir(OBJECT)
+
+
+
+创建指定目录。
+
+- 参数
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | --------- | -------- | ---- | ------------------------------------------- |
+ | uri | string | 是 | 目录的uri路径。 |
+ | recursive | boolean | 否 | 是否递归创建该目录的上级目录,缺省为false。 |
+ | success | Function | 否 | 接口调用成功的回调函数。 |
+ | fail | Function | 否 | 接口调用失败的回调函数。 |
+ | complete | Function | 否 | 接口调用结束的回调函数。 |
+
+ fail返回错误代码:
+
+ | 错误码 | 说明 |
+ | ------ | -------------- |
+ | 202 | 出现参数错误。 |
+ | 300 | 出现I/O 错误。 |
+
+- 示例
+
+ ```javascript
+ file.mkdir({
+ uri: 'internal://app/test_directory',
+ success: function() {
+ console.log('call mkdir success.');
+ },
+ fail: function(data, code) {
+ console.error('call fail callback fail, code: ' + code + ', data: ' + data);
+ },
+ });
+ ```
+
+## file.rmdir(OBJECT)
+
+
+
+删除指定目录。
+
+- 参数
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | --------- | -------- | ---- | ----------------------------------------- |
+ | uri | string | 是 | 目录的uri路径。 |
+ | recursive | boolean | 否 | 是否递归删除子文件和子目录,缺省为false。 |
+ | success | Function | 否 | 接口调用成功的回调函数。 |
+ | fail | Function | 否 | 接口调用失败的回调函数。 |
+ | complete | Function | 否 | 接口调用结束的回调函数。 |
+
+ fail返回错误代码:
+
+ | 错误码 | 说明 |
+ | ------ | ------------------ |
+ | 202 | 出现参数错误。 |
+ | 300 | 出现I/O 错误。 |
+ | 301 | 文件或目录不存在。 |
+
+- 示例
+
+ ```javascript
+ file.rmdir({
+ uri: 'internal://app/test_directory',
+ success: function() {
+ console.log('call rmdir success.');
+ },
+ fail: function(data, code) {
+ console.error('call fail callback fail, code: ' + code + ', data: ' + data);
+ },
+ });
+ ```
+
diff --git "a/zh-cn/application-dev/js-reference/\346\226\207\344\273\266\347\256\241\347\220\206.md" "b/zh-cn/application-dev/js-reference/\346\226\207\344\273\266\347\256\241\347\220\206.md"
new file mode 100644
index 0000000000000000000000000000000000000000..52a38c973cc66006b36a41a5fe4f95b1f73ea541
--- /dev/null
+++ "b/zh-cn/application-dev/js-reference/\346\226\207\344\273\266\347\256\241\347\220\206.md"
@@ -0,0 +1,1056 @@
+# 文件管理
+
+
+
+## 支持设备
+
+| 手机 | 平板 | 智慧屏 | 智能穿戴 |
+| ---- | ------ | ------ | -------- |
+| 支持 | 不支持 | 不支持 | 支持 |
+
+
+
+## 导入模块
+
+```js
+import fileio from '@ohos.fileio'
+```
+
+
+
+## 权限列表
+
+无
+
+
+
+## openSync(path:string, flags?:number, mode?:number): number
+
+同步地打开文件。
+
+- 参数:
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | ------ | ------ | ---- | ------------------------------------------------------------ |
+ | path | string | 是 | 待打开文件的绝对路径。 |
+ | flags | number | 否 | 打开文件的选项,必须指定如下选项中的一个,默认以只读方式打开:
0o0:只读打开。
0o1:只写打开。
0o2:读写打开。
同时,也可给定如下选项,以按位或的方式追加,默认不给定任何额外选项:
0o100:若文件不存在,则创建文件。使用该选项时必须指定第三个参数mode。
0o200:如果追加了0o100 选项,且文件已经存在,则报错。
0o1000:如果文件存在且以只写或读写的方式打开文件,则将其长度裁剪为零。
0o2000:以追加方式打开,后续写将追加到文件末尾。
0o4000:如果path指向FIFO、块特殊文件或字符特殊文件,则本次打开及后续IO进行非阻塞操作。
0o200000:如果path指向目录,则报错。
0o400000:如果path指向符号链接,则报错。
0o4010000:以同步IO的方式打开文件。 |
+ | mode | number | 否 | 若创建文件,则指定文件的权限,可给定如下权限,以按位或的方式追加权限,默认给定0o666。
0o666:所有者具有读、写及可执行权限,其余用户具有读、写及可执行权限。
0o0700:所有者具有读、写及可执行权限。
0o0400:所有者具有读权限。
0o0200:所有者具有写权限。
0o0100:所有者具有可执行权限。
0o0070:所有用户组具有读、写及可执行权限。
0o0040:所有用户组具有读权限。
0o0020:所有用户组具有写权限。
0o0010:所有用户组具有可执行权限。
0o0007:其余用户具有读、写及可执行权限。
0o0004:其余用户具有读权限。
0o0002:其余用户具有写权限。
0o0001 :其余用户具有可执行权限。 |
+
+- 返回值:
+
+ | 类型 | 说明 |
+ | :----- | :--------------------- |
+ | number | 打开文件的文件描述符。 |
+
+- 示例:
+
+ ```js
+ let fd = fileio.openSync(path);
+ ```
+
+
+
+## accessSync(path: string, mode?: number): void
+
+同步地检查当前进程是否可访问某文件。
+
+- 参数:
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | ------ | ------ | ---- | ------------------------------------------------------------ |
+ | path | string | 是 | 文件路径。 |
+ | mode | number | 否 | 查询文件时的选项,可给定如下选项,以按位或的方式使用多个选项,默认给定0。
确认当前进程是否具有对应权限:
0:确认文件是否存在。
1:确认当前进程是否具有可执行权限。
2:确认当前进程是否具有写权限。
4:确认当前进程是否具有读权限。 |
+
+- 返回值:
+
+ 无
+
+- 示例:
+
+ ```js
+ fileio.accessSync(path);
+ ```
+
+
+
+## chmodSync(path:string, mode:number):void
+
+同步地修改文件权限。
+
+- 参数:
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | ------ | ------ | ---- | ------------------------------------------------------------ |
+ | path | string | 是 | 文件路径。 |
+ | mode | number | 是 | 文件的访问权限,可给定如下权限,以按位或的方式追加权限。只有该文件的所有者或有效用户识别码为0,才可以修改该文件的权限。
0o4000:文件的 (set user-id on execution)位
0o2000:文件的 (set group-id on execution)位
0o1000:文件的sticky 位
0o0700:所有者具有读、写及可执行权限。
0o0400:所有者具有读权限。
0o0200:所有者具有写权限。
0o0100:所有者具有可执行权限。
0o0070:所有用户组具有读、写及可执行权限。
0o0040:所有用户组具有读权限。
0o0020:所有用户组具有写权限。
0o0010:所有用户组具有可执行权限。
0o0007:其余用户具有读、写及可执行权限。
0o0004:其余用户具有读权限。
0o0002:其余用户具有写权限。
0o0001 :其余用户具有可执行权限。 |
+
+- 返回值:
+
+ 无
+
+- 示例:
+
+ ```js
+ fileio.chmodSync(path, 0o660);
+ ```
+
+
+
+## chownSync(path:string, owner:number, group:number):void
+
+同步地修改文件的所有者和组。
+
+- 参数:
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | ------ | ------ | ---- | -------------------- |
+ | path | string | 是 | 待修改的文件路径。 |
+ | owner | number | 是 | 文件所有者的用户ID。 |
+ | group | number | 是 | 组ID。 |
+
+- 返回值:
+
+ 无
+
+- 示例:
+
+ ```js
+ fileio.chownSync(path, UID, UID);
+ ```
+
+
+
+## closeSync(fd: number): void
+
+关闭文件描述符。
+
+- 参数:
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | ------ | ------ | ---- | ------------ |
+ | fd | number | 是 | 文件描述符。 |
+
+- 返回值:
+
+ 无
+
+- 示例:
+
+ ```js
+ fileio.closeSync(fd);
+ ```
+
+
+
+## copyFileSync(src:string, dest:string, mode?:number): void
+
+同步地复制文件。
+
+- 参数:
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | ------ | ------ | ---- | ------------------------------------------------------------ |
+ | src | string | 是 | 待复制文件的路径。 |
+ | dest | string | 是 | 目标文件路径。 |
+ | mode | number | 否 | mode提供覆盖文件的选项,当前仅支持0,且默认为0。0:完全覆盖目标文件,未覆盖部分将被裁切掉。 |
+
+- 返回值:
+
+ 无
+
+- 示例:
+
+ ```js
+ fileio.copyFileSync(src, dest);
+ ```
+
+
+
+## fchmodSync(fd:number, mode:number):void
+
+同步地更改文件描述符所指文件的权限。
+
+- 参数:
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | ------ | ------ | ---- | ------------------------------------------------------------ |
+ | fd | number | 是 | 待修改权限的文件描述符 |
+ | mode | number | 是 | 文件的访问权限,可给定如下权限,以按位或的方式追加权限。只有该文件的所有者或有效用户识别码为0,才可以修改该文件的权限。
0o4000:文件的 (set user-id on execution)位
0o2000:文件的 (set group-id on execution)位
0o1000:文件的sticky 位
0o0700:所有者具有读、写及可执行权限。
0o0400:所有者具有读权限。
0o0200:所有者具有写权限。
0o0100:所有者具有可执行权限。
0o0070:所有用户组具有读、写及可执行权限。
0o0040:所有用户组具有读权限。
0o0020:所有用户组具有写权限。
0o0010:所有用户组具有可执行权限。
0o0007:其余用户具有读、写及可执行权限。
0o0004:其余用户具有读权限。
0o0002:其余用户具有写权限。
0o0001 :其余用户具有可执行权限。 |
+
+- 返回值:
+
+ 无
+
+- 示例:
+
+ ```js
+ let fd = fileio.openSync(path, 0o2);
+ fileio.fchmodSync(fd, 0o660);
+ ```
+
+
+
+## fchownSync(fd:number, owner:number, group:number):void
+
+同步地更改已打开文件的所有者和组。
+
+- 参数:
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | ------ | ------ | ---- | ------------------ |
+ | fd | number | 是 | 要修改的文件描述符 |
+ | owner | number | 是 | 文件所有者的用户ID |
+ | group | number | 是 | 组ID |
+
+- 返回值:
+
+ 无
+
+- 示例:
+
+ ```js
+ let fd = fileio.openSync(path, 0o2);
+ fileio.fchownSync(fd, UID, UID);
+ ```
+
+
+
+## fstatSync(fd:number):Stat
+
+同步地获取已打开文件的信息。
+
+- 参数:
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | ------ | ------ | ---- | ---------------------- |
+ | fd | number | 是 | 已打开文件的文件描述符 |
+
+- 返回值:
+
+ | 类型 | 说明 |
+ | :--- | :------------------- |
+ | Stat | 表示文件的具体信息。 |
+
+- 示例:
+
+ ```js
+ let fd = fileio.openSync(path, 0o2);
+ let stat = fileio.fstatSync(fd);
+ ```
+
+
+
+## ftruncateSync(fd:number, len?:number):void
+
+同步地修改已打开文件的大小。
+
+- 参数:
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | ------ | ------ | ---- | ---------------------------------------------------- |
+ | fd | number | 是 | 待修改的文件描述符 |
+ | len | number | 否 | 指定文件大小,缺省值0,原文件大小超过len部分会被删除 |
+
+- 返回值:
+
+ 无
+
+- 示例:
+
+ ```js
+ let fd = fileio.openSync(path, 0o2);
+ fileio.ftruncateSync(fd);
+ ```
+
+
+
+## mkdirSync(path: string, mode?: number): void
+
+同步地创建目录。
+
+- 参数:
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | ------ | ------ | ---- | ------------------------------------------------------------ |
+ | path | string | 是 | 待创建目录的绝对路径。 |
+ | mode | number | 否 | 待创建目录的权限,可给定如下权限,以按位或的方式追加权限,默认给定0o775。
0o775:所有者具有读、写及可执行权限,其余用户具有读、写及可执行权限。
0o700:所有者具有读、写及可执行权限。
0o400:所有者具有读权限。
0o200:所有者具有写权限。
0o100:所有者具有可执行权限。
0o070:所有用户组具有读、写及可执行权限。
0o040:所有用户组具有读权限。
0o020:所有用户组具有写权限。
0o010:所有用户组具有可执行权限。
0o007:其余用户具有读、写及可执行权限。
0o004:其余用户具有读权限。
0o002:其余用户具有写权限。
0o001:其余用户具有可执行权限。 |
+
+- 返回值:
+
+ 无
+
+- 示例:
+
+ ```
+ fileio.mkdirSync(path);
+ ```
+
+
+
+## readSync(fd: number, buffer: ArrayBuffer, options?: Object): number
+
+同步地从文件读取数据。
+
+- 参数:
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | ------- | ----------- | ---- | ------------------------------------------------------------ |
+ | fd | number | 是 | 待读取文件的文件描述符。 |
+ | buffer | ArrayBuffer | 是 | 用于读取文件的缓冲区。 |
+ | options | Object | 否 | 支持如下选项:
offset,number 类型,表示将数据读取到缓冲区的位置,即相对于缓冲区首地址的偏移。可选,默认为0。
length,number 类型,表示期望读取数据的长度。可选,默认缓冲区长度减去偏移长度。
position,number 类型,表示期望读取文件的位置。可选,默认从当前位置开始读。 |
+
+- 返回值:
+
+ | 类型 | 说明 |
+ | :----- | :--------------- |
+ | number | 实际读取的长度。 |
+
+- 示例:
+
+ ```js
+ let fd = fileio.openSync(path, 0o2);
+ let buf = new ArrayBuffer(4096);
+ fileio.readSync(fd, buf);
+ console.log(String.fromCharCode.apply(null, new Uint8Array(buf)));
+ ```
+
+
+
+## renameSync(path:string, pathTarget:string):void
+
+同步地重命名文件。
+
+- 参数:
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | ---------- | ------ | ---- | -------------------- |
+ | path | string | 是 | 待重命名的文件原路径 |
+ | pathTarget | string | 是 | 要重命名的文件路径 |
+
+- 返回值:
+
+ 无
+
+- 示例:
+
+ ```js
+ fileio.renameSync(path, pathTarget);
+ ```
+
+
+
+## rmdirSync(path:string):void
+
+同步地删除目录。
+
+- 参数:
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | ------ | ------ | ---- | ---------------------- |
+ | path | string | 是 | 待删除目录的绝对路径。 |
+
+- 返回值:
+
+ 无
+
+- 示例:
+
+ ```js
+ fileio.rmdirSync(path);
+ ```
+
+
+
+## unlinkSync(path: string): void
+
+同步地删除文件。
+
+- 参数:
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | ------ | ------ | ---- | ---------------------- |
+ | path | string | 是 | 待删除文件的绝对路径。 |
+
+- 返回值:
+
+ 无
+
+- 示例:
+
+ ```
+ fileio.unlinkSync(path);
+ ```
+
+
+
+## fsyncSync(fd:number):void
+
+同步地将缓冲区数据写回磁盘进行数据同步。
+
+- 参数:
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | ------ | ------ | ---- | ---------------------- |
+ | fd | number | 是 | 待同步数据的文件描述符 |
+
+- 返回值:
+
+ 无
+
+- 示例:
+
+ ```js
+ let fd = fileio.openSync(path, 0o2);
+ fileio.fsyncSync(fd);
+ ```
+
+
+
+## truncateSync(path:string, len?:number):void
+
+同步地修改文件大小。
+
+- 参数:
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | ------ | ------ | ---- | ---------------------------------------------------- |
+ | path | string | 是 | 待修改的文件路径 |
+ | len | number | 否 | 指定文件大小,缺省值0,原文件大小超过len部分会被删除 |
+
+- 返回值:
+
+ 无
+
+- 示例:
+
+ ```js
+ fileio.truncateSync(path);
+ ```
+
+
+
+## writeSync(fd: number, buffer: ArrayBuffer | string, options?:Object): number
+
+同步地将数据写入文件。
+
+- 参数:
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | ------- | --------------------- | ---- | ------------------------------------------------------------ |
+ | fd | number | 是 | 待写入文件的文件描述符。 |
+ | buffer | ArrayBuffer \| string | 是 | 待写入文件的数据,可来自缓冲区或字符串。 |
+ | options | Object | 否 | 支持如下选项:
offset,number类型,表示期望写入数据的位置相对于数据首地址的偏移。可选,默认为0。
length,number类型,表示期望写入数据的长度。可选,默认缓冲区长度减去偏移长度。
position,number类型,表示期望写入文件的位置。可选,默认从当前位置开始写。
encoding,string类型,当数据是 string 类型时有效,表示数据的编码方式,默认 'utf-8',仅支持 'utf-8'。 |
+
+- 返回值:
+
+ | 类型 | 说明 |
+ | :----- | :--------------- |
+ | number | 实际写入的长度。 |
+
+- 示例:
+
+ ```js
+ let fd = fileio.openSync(path, 0o102, 0o666);
+ let writeLen = fileio.writeSync(fd, 'hello, world');
+ ```
+
+
+
+## Stat
+
+文件具体信息,在调用Stat的方法前,需要先通过statSync(path:string)方法来构建一个Stat实例。
+
+### 属性
+
+| 名称 | 参数类型 | 可读 | 可写 | 说明 |
+| ------- | -------- | ---- | ---- | ------------------------------------------------------------ |
+| dev | number | 是 | 否 | 标识包含该文件的主设备号。 |
+| ino | number | 是 | 否 | 标识该文件。通常同设备上的不同文件的INO不同。 |
+| mode | number | 是 | 否 | 表示文件类型及权限,其首 4 位表示文件类型,后 12 位表示权限。各特征位的含义如下:
0o170000:可用于获取文件类型的掩码
0o140000:文件是套接字
0o120000:文件是符号链接
0o100000:文件是一般文件
0o060000:文件属于块设备
0o040000:文件是目录
0o020000:文件是字符设备
0o010000:文件是具名管道,即FIFO
0o0700:可用于获取用户权限的掩码
0o0400:用户读,对于普通文件,文件所有者可读取文件;对于目录,文件所有者可读取目录项
0o0200:用户写,对于普通文件,文件所有者可写入文件;对于目录,文件所有者可创建/删除目录项
0o0100:用户执行,对于普通文件,文件所有者可执行文件;对于目录,文件所有者可在目录中搜索给定路径名0o0070:可用于获取用户组权限的掩码
0o0040:用户组读,对于普通文件,文件所有用户组可读取文件;对于目录,文件所有用户组可读取目录项
0o0020:用户组写,对于普通文件,文件所有用户组可写入文件;对于目录,文件所有用户组可创建/删除目录项0o0010:用户组执行,对于普通文件,文件所有用户组可执行文件;对于目录,文件所有用户组是否可在目录中搜索给定路径名
0o0007:可用于获取其他用户权限的掩码
0o0004:其他读,对于普通文件,其他用户组可读取文件;对于目录,其他用户组可读取目录项
0o0002:其他写,对于普通文件,其他用户组可写入文件;对于目录,其他用户组可创建/删除目录项
0o0001:其他执行,对于普通文件,其他用户组可执行文件;对于目录,其他用户组可在目录中搜索给定路径名 |
+| nlink | number | 是 | 否 | 文件的硬链接数。 |
+| uid | number | 是 | 否 | 文件所有者的ID。 |
+| gid | number | 是 | 否 | 文件所有组的ID。 |
+| rdev | number | 是 | 否 | 标识包含该文件的从设备号。 |
+| size | number | 是 | 否 | 文件的大小,以字节为单位。仅对普通文件有效。 |
+| blksize | number | 是 | 否 | 包含该文件的磁盘块的大小 |
+| blocks | number | 是 | 否 | 文件占用的块数,计算时块大小按512B计算。 |
+| atime | number | 是 | 否 | 上次访问该文件的时间,表示距1970年1月1日0时0分0秒的秒数。 |
+| mtime | number | 是 | 否 | 上次修改该文件的时间,表示距1970年1月1日0时0分0秒的秒数。 |
+| ctime | number | 是 | 否 | 最近改变文件状态的时间,表示距1970年1月1日0时0分0秒的秒数。 |
+
+
+
+### statSync(path:string): Stat
+
+同步地获取文件的信息。
+
+- 参数:
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | ------ | ------ | ---- | ---------- |
+ | path | string | 是 | 文件路径。 |
+
+- 返回值:
+
+ | 类型 | 说明 |
+ | :--- | :------------------- |
+ | Stat | 表示文件的具体信息。 |
+
+- 示例:
+
+ ```js
+ let stat = fileio.statSync(path);
+ ```
+
+
+
+### isBlockDevice(): boolean
+
+用于判断当前目录项是否是块特殊文件。一个块特殊文件只能以块为粒度进行访问,且访问的时候带缓存。
+
+- 参数:
+
+ 无
+
+- 返回值:
+
+ | 类型 | 说明 |
+ | :------ | :------------------------------- |
+ | boolean | 表示当前目录项是否是块特殊设备。 |
+
+- 示例:
+
+ ```js
+ let isBLockDevice = fileio.statSync(fpath).isBlockDevice();
+ ```
+
+
+
+### isCharacterDevice(): boolean
+
+用于判断当前目录项是否是字符特殊文件。一个字符特殊设备可进行随机访问,且访问的时候不带缓存。
+
+- 参数:
+
+ 无
+
+- 返回值:
+
+ | 类型 | 说明 |
+ | :------ | :--------------------------------- |
+ | boolean | 表示当前目录项是否是字符特殊设备。 |
+
+- 示例:
+
+ ```js
+ let isCharacterDevice = fileio.statSync(fpath).isCharacterDevice();
+ ```
+
+
+
+### isDirectory(): boolean
+
+用于判断当前目录项是否是目录。
+
+- 参数:
+
+ 无
+
+- 返回值:
+
+ | 类型 | 说明 |
+ | :------ | :------------------------- |
+ | boolean | 表示当前目录项是否是目录。 |
+
+- 示例:
+
+ ```js
+ let isDirectory = fileio.statSync(fpath).isDirectory();
+ ```
+
+
+
+### isFIFO(): boolean
+
+用于判断当前目录项是否是命名管道(有时也称为FIFO)。命名管道通常用于进程间通信。
+
+- 参数:
+
+ 无
+
+- 返回值:
+
+ | 类型 | 说明 |
+ | :------ | :-------------------------- |
+ | boolean | 表示当前目录项是否是 FIFO。 |
+
+- 示例:
+
+ ```js
+ let isFIFO = fileio.statSync(fpath).isFIFO();
+ ```
+
+
+
+### isFile(): boolean
+
+用于判断当前目录项是否是普通文件。
+
+- 参数:
+
+ 无
+
+- 返回值:
+
+ | 类型 | 说明 |
+ | :------ | :----------------------------- |
+ | boolean | 表示当前目录项是否是普通文件。 |
+
+- 示例:
+
+ ```js
+ let isFile = fileio.statSync(fpath).isFile();
+ ```
+
+
+
+### isSocket(): boolean
+
+用于判断当前目录项是否是套接字。
+
+- 参数:
+
+ 无
+
+- 返回值:
+
+ | 类型 | 说明 |
+ | :------ | :--------------------------- |
+ | boolean | 表示当前目录项是否是套接字。 |
+
+- 示例:
+
+ ```js
+ let isSocket = fileio.statSync(fpath).isSocket();
+ ```
+
+
+
+### isSymbolicLink(): boolean
+
+用于判断当前目录项是否是符号链接。
+
+- 参数:
+
+ 无
+
+- 返回值:
+
+ | 类型 | 说明 |
+ | :------ | :----------------------------- |
+ | boolean | 表示当前目录项是否是符号链接。 |
+
+- 示例:
+
+ ```js
+ let isSymbolicLink = fileio.statSync(fpath).isSymbolicLink();
+ ```
+
+
+
+## Dir
+
+管理目录,在调用Dir的方法前,需要先通过opendirSync(path: string)方法来构建一个Dir实例。
+
+
+
+### opendirSync(path: string): Dir
+
+同步地打开文件目录。
+
+- 参数:
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | ------ | ------ | ---- | ---------- |
+ | path | string | 是 | 目录名称。 |
+
+- 返回值:
+
+ | 类型 | 说明 |
+ | :--- | :------------ |
+ | Dir | 返回Dir对象。 |
+
+- 示例:
+
+ ```js
+ let dir = fileio.opendirSync(path);
+ ```
+
+
+
+### readSync(): Dirent
+
+同步读取下一个目录项。
+
+- 参数:
+
+ 无
+
+- 返回值:
+
+ | 类型 | 说明 |
+ | :----------------------------------------------------------- | :--------------- |
+ | [Dirent](https://developer.harmonyos.com/cn/docs/documentation/doc-references/js-apis-fileio-0000001169469727#section92331215118) | 表示一个目录项。 |
+
+- 示例:
+
+ ```js
+ let dir = fileio.opendirSync(dpath);
+ let dirent = dir.readSync();
+ console.log(dirent.name);
+ ```
+
+
+
+### closeSync(): void
+
+用于关闭目录。目录被关闭后,Dir中持有的文件描述将被释放,后续将无法从Dir中读取目录项。
+
+- 参数:
+
+ 无
+
+- 返回值:
+
+ 无
+
+- 示例:
+
+ ```js
+ let dir = fileio.opendirSync(dpath);
+ dir.closeSync();
+ ```
+
+
+
+## Dirent
+
+在调用Dirent的方法前,需要先通过dir.readSync()方法来构建一个Dirent实例。
+
+### 属性
+
+| 名称 | 参数类型 | 可读 | 可写 | 说明 |
+| ---- | -------- | ---- | ---- | -------------- |
+| name | string | 是 | 否 | 目录项的名称。 |
+
+
+
+### isBlockDevice(): boolean
+
+用于判断当前目录项是否是块特殊文件。一个块特殊文件只能以块为粒度进行访问,且访问的时候带缓存。
+
+- 参数:
+
+ 无
+
+- 返回值:
+
+ | 类型 | 说明 |
+ | :------ | :------------------------------- |
+ | boolean | 表示当前目录项是否是块特殊设备。 |
+
+- 示例:
+
+ ```js
+ let dir = fileio.opendirSync(dpath);
+ let isBLockDevice = dir.readSync().isBlockDevice();
+ ```
+
+
+
+### isCharacterDevice(): boolean
+
+用于判断当前目录项是否是字符特殊设备。一个字符特殊设备可进行随机访问,且访问的时候不带缓存。
+
+- 参数:
+
+ 无
+
+- 返回值:
+
+ | 类型 | 说明 |
+ | :------ | :--------------------------------- |
+ | boolean | 表示当前目录项是否是字符特殊设备。 |
+
+- 示例:
+
+ ```js
+ let dir = fileio.opendirSync(dpath);
+ let isCharacterDevice = dir.readSync().isCharacterDevice();
+ ```
+
+
+
+### isDirectory(): boolean
+
+用于判断当前目录项是否是目录。
+
+- 参数:
+
+ 无
+
+- 返回值:
+
+ | 类型 | 说明 |
+ | :------ | :------------------------- |
+ | boolean | 表示当前目录项是否是目录。 |
+
+- 示例:
+
+ ```js
+ let dir = fileio.opendirSync(dpath);
+ let isDirectory = dir.readSync().isDirectory();
+ ```
+
+
+
+### isFIFO(): boolean
+
+用于判断当前目录项是否是命名管道(有时也称为FIFO)。命名管道通常用于进程间通信。
+
+- 参数:
+
+ 无
+
+- 返回值:
+
+ | 类型 | 说明 |
+ | :------ | :------------------------- |
+ | boolean | 表示当前目录项是否是FIFO。 |
+
+- 示例:
+
+ ```js
+ let dir = fileio.opendirSync(dpath);
+ let isFIFO = dir.readSync().isFIFO();
+ ```
+
+
+
+### isFile(): boolean
+
+用于判断当前目录项是否是普通文件。
+
+- 参数:
+
+ 无
+
+- 返回值:
+
+ | 类型 | 说明 |
+ | :------ | :----------------------------- |
+ | boolean | 表示当前目录项是否是普通文件。 |
+
+- 示例:
+
+ ```js
+ let dir = fileio.opendirSync(dpath);
+ let isFile = dir.readSync().isFile();
+ ```
+
+
+
+### isSocket(): boolean
+
+用于判断当前目录项是否是套接字。
+
+- 参数:
+
+ 无
+
+- 返回值:
+
+ | 类型 | 说明 |
+ | :------ | :--------------------------- |
+ | boolean | 表示当前目录项是否是套接字。 |
+
+- 示例:
+
+ ```js
+ let dir = fileio.opendirSync(dpath);
+ let isSocket = dir.readSync().isSocket();
+ ```
+
+
+
+### isSymbolicLink(): boolean
+
+用于判断当前目录项是否是符号链接。
+
+- 参数:
+
+ 无
+
+- 返回值:
+
+ | 类型 | 说明 |
+ | :------ | :----------------------------- |
+ | boolean | 表示当前目录项是否是符号链接。 |
+
+- 示例:
+
+ ```js
+ let dir = fileio.opendirSync(dpath);
+ let isSymbolicLink = dir.readSync().isSymbolicLink();
+ ```
+
+
+
+## Stream
+
+### createStreamSync(path:string, mode:string): Stream
+
+同步地获取文件流。
+
+- 参数:
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | ------ | ------ | ---- | ------------------------------------------------------------ |
+ | path | string | 是 | 文件路径。 |
+ | mode | string | 是 | 文件访问模式,以文本方式打开文件可给定如下选项,如果要以二进制形式打开,需要在模式字符串的末尾或两个字符中间加上“b”。
r: 打开只读文件;文件必须存在。
w: 打开只写空文件;若文件已存在则舍弃原有文件内容,否则建立该文件。
a: 打开只写文件;若文件不存在,创建新文件,否则在文件末尾追加数据。
r+: 打开可读写文件;文件必须存在。
w+: 打开可读写空文件;若文件已存在则舍弃原有文件内容,否则建立该文件。
a+: 打开可读写文件;若文件不存在,创建新文件,否则在文件末尾追加数据。 |
+
+- 返回值:
+
+ | 类型 | 说明 |
+ | :----- | :----------- |
+ | Stream | 表示文件流。 |
+
+- 示例:
+
+ ```js
+ let ss = fileio.createStreamSync(path, "r+");
+ ```
+
+
+
+### fdopenStreamSync(fd:number, mode:string):Stream
+
+同步地将文件描述符转为文件流。
+
+- 参数:
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | ------ | ------ | ---- | ------------------------------------------------------------ |
+ | fd | number | 是 | 已打开文件的文件描述符。 |
+ | mode | string | 是 | 文件访问模式,以文本方式打开文件可给定如下选项,如果要以二进制形式打开,需要在模式字符串的末尾或两个字符中间加上“b”。
r: 打开只读文件;文件必须存在。
w: 打开只写空文件;若文件已存在则舍弃原有文件内容,否则建立该文件。
a: 打开只写文件;若文件不存在,创建新文件,否则在文件末尾追加数据。
r+: 打开可读写文件;文件必须存在。
w+: 打开可读写空文件;若文件已存在则舍弃原有文件内容,否则建立该文件。
a+: 打开可读写文件;若文件不存在,创建新文件,否则在文件末尾追加数据。 |
+
+- 返回值:
+
+ | 类型 | 说明 |
+ | :----- | :----------- |
+ | Stream | 表示文件流。 |
+
+- 示例:
+
+ ```js
+ let fd = fileio.openSync(path, 0o2);
+ let ss = fileio.fdopenStreamSync(fd, "r+");
+ ```
+
+
+
+### writeSync(buffer: ArrayBuffer | string, options?:Object):number
+
+同步地向文件流写入数据。
+
+- 参数:
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | ------- | -------------------- | ---- | ------------------------------------------------------------ |
+ | buffer | ArrayBuffer \|string | 是 | 待写入的数据,可来自缓冲区或字符串。 |
+ | options | object | 否 | 支持如下选项:
offset,number类型,表示期望写入数据的位置相对于数据首地址的偏移。可选,默认为0。
length,number类型,表示期望写入数据的长度。可选,默认缓冲区长度减去偏移长度。
position,number类型,表示期望写入文件的位置。可选,默认从当前位置开始写。
encoding,string类型,当数据是 string 类型时有效,表示数据的编码方式,默认 'utf-8',仅支持 'utf-8'。 |
+
+- 返回值:
+
+ | 类型 | 说明 |
+ | :----- | :--------------- |
+ | number | 实际写入的长度。 |
+
+- 示例:
+
+ ```js
+ let ss = fileio.createStreamSync(path, "r+");
+ let writeLen = ss.writeSync('hello, world');
+ ```
+
+
+
+### flushSync():void
+
+同步地刷新文件流的输出缓冲区。
+
+- 参数:
+
+ 无
+
+- 返回值:
+
+ 无
+
+- 示例:
+
+ ```js
+ let ss = fileio.createStreamSync(path, "r+");
+ let writeLen = ss.writeSync('hello, world');
+ ss.flushSync();
+ ```
+
+
+
+### readSync(buffer: ArrayBuffer, options?:Object):number
+
+同步地从文件流读取数据。
+
+- 参数:
+
+ | 参数名 | 类型 | 必填 | 说明 |
+ | ------- | ----------- | ---- | ------------------------------------------------------------ |
+ | buffer | ArrayBuffer | 是 | 用于读取数据的缓冲区。 |
+ | options | Object | 否 | 支持如下选项:
offset,number 类型,表示将数据读取到缓冲区的位置,即相对于缓冲区首地址的偏移。可选,默认为0。
length,number 类型,表示期望读取数据的长度。可选,默认缓冲区长度减去偏移长度。
position,number 类型,表示期望读取文件的位置。可选,默认从当前位置开始读。 |
+
+- 返回值:
+
+ | 类型 | 说明 |
+ | :----- | :--------------- |
+ | number | 实际读取的长度。 |
+
+- 示例:
+
+ ```js
+ let ss = fileio.createStreamSync(path, "r+");
+ let buf = new ArrayBuffer(4096);
+ let readLen = fileio.readSync(buf);
+ console.log(String.fromCharCode.apply(null, new Uint8Array(buf)));
+ ```
+
+
+
+### closeSync():void
+
+同步地关闭文件流。
+
+- 参数:
+
+ 无
+
+- 返回值:
+
+ 无
+
+- 示例:
+
+ ```js
+ let ss = fileio.createStreamSync(path, "r+");
+ ss.closeSync();
+ ```
+
diff --git a/zh-cn/device-dev/porting/porting-chip-board-driver.md b/zh-cn/device-dev/porting/porting-chip-board-driver.md
old mode 100644
new mode 100755
diff --git a/zh-cn/device-dev/porting/porting-chip-board-hal.md b/zh-cn/device-dev/porting/porting-chip-board-hal.md
old mode 100644
new mode 100755
diff --git a/zh-cn/device-dev/porting/porting-chip-faqs.md b/zh-cn/device-dev/porting/porting-chip-faqs.md
old mode 100644
new mode 100755
diff --git a/zh-cn/device-dev/porting/porting-thirdparty-overview.md b/zh-cn/device-dev/porting/porting-thirdparty-overview.md
old mode 100644
new mode 100755
diff --git a/zh-cn/device-dev/subsystems/subsys-densor-demo.md b/zh-cn/device-dev/subsystems/subsys-densor-demo.md
old mode 100644
new mode 100755