• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.fileio (文件管理)
2
3该模块提供文件存储管理能力,包括文件基本管理、文件目录管理、文件信息统计、文件流式读写等常用功能。
4
5> **说明:**
6> - 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
7> - 本模块从API version 9开始废弃,建议使用[@ohos.file.fs](js-apis-file-fs.md)替代。
8
9## 导入模块
10
11```ts
12import fileio from '@ohos.fileio';
13```
14
15
16## 使用说明
17
18使用该功能模块对文件/目录进行操作前,需要先获取其应用沙箱路径,获取方式及其接口用法请参考:
19
20
21 ```ts
22  import UIAbility from '@ohos.app.ability.UIAbility';
23  import window from '@ohos.window';
24
25  export default class EntryAbility extends UIAbility {
26    onWindowStageCreate(windowStage: window.WindowStage) {
27      let context = this.context;
28      let pathDir = context.filesDir;
29    }
30  }
31  ```
32
33使用该功能模块对文件/目录进行操作前,需要先获取其应用沙箱路径,获取方式及其接口用法请参考:[应用上下文Context-获取应用文件路径](../../application-models/application-context-stage.md#获取应用文件路径)
34
35
36## fileio.stat
37
38stat(path: string): Promise<Stat>
39
40获取文件信息,使用Promise异步回调。
41
42> **说明**:
43>
44> 从API version 9开始废弃,请使用[fs.stat](js-apis-file-fs.md#stat)替代。
45
46**系统能力**:SystemCapability.FileManagement.File.FileIO
47
48**参数:**
49
50| 参数名 | 类型   | 必填 | 说明                       |
51| ------ | ------ | ---- | -------------------------- |
52| path   | string | 是   | 待获取文件的应用沙箱路径。 |
53
54**返回值:**
55
56  | 类型                           | 说明         |
57  | ---------------------------- | ---------- |
58  | Promise<[Stat](#stat)> | Promise对象。返回文件的具体信息。 |
59
60**示例:**
61
62  ```ts
63  import { BusinessError } from '@ohos.base';
64  let filePath = pathDir + "test.txt";
65  fileio.stat(filePath).then((stat: fileio.Stat) => {
66    console.info("getFileInfo succeed, the size of file is " + stat.size);
67  }).catch((err: BusinessError) => {
68    console.info("getFileInfo failed with error:" + err);
69  });
70  ```
71
72
73## fileio.stat
74
75stat(path: string, callback: AsyncCallback<Stat>): void
76
77获取文件信息,使用callback异步回调。
78
79> **说明**:
80>
81> 从API version 9开始废弃,请使用[fs.stat](js-apis-file-fs.md#fsstat-1)替代。
82
83**系统能力**:SystemCapability.FileManagement.File.FileIO
84
85**参数:**
86
87| 参数名   | 类型                               | 必填 | 说明                           |
88| -------- | ---------------------------------- | ---- | ------------------------------ |
89| path     | string                             | 是   | 待获取文件的应用沙箱路径。     |
90| callback | AsyncCallback<[Stat](#stat)> | 是   | 异步获取文件的信息之后的回调。 |
91
92**示例:**
93
94  ```ts
95  import { BusinessError } from '@ohos.base';
96  fileio.stat(pathDir, (err: BusinessError, stat: fileio.Stat) => {
97    // example code in Stat
98  });
99  ```
100
101
102## fileio.statSync
103
104statSync(path: string): Stat
105
106以同步方法获取文件的信息。
107
108> **说明**:
109>
110> 从API version 9开始废弃,请使用[fs.statSync](js-apis-file-fs.md#fsstatsync)替代。
111
112**系统能力**:SystemCapability.FileManagement.File.FileIO
113
114**参数:**
115
116| 参数名 | 类型   | 必填 | 说明                       |
117| ------ | ------ | ---- | -------------------------- |
118| path   | string | 是   | 待获取文件的应用沙箱路径。 |
119
120
121**返回值:**
122
123  | 类型            | 说明         |
124  | ------------- | ---------- |
125  | [Stat](#stat) | 表示文件的具体信息。 |
126
127**示例:**
128
129  ```ts
130  let stat = fileio.statSync(pathDir);
131  // example code in Stat
132  ```
133
134
135## fileio.opendir
136
137opendir(path: string): Promise<Dir>
138
139打开文件目录,使用Promise异步回调。
140
141> **说明**:
142>
143> 从API version 9开始废弃,请使用[fs.listFile](js-apis-file-fs.md#fslistfile)替代。
144
145**系统能力**:SystemCapability.FileManagement.File.FileIO
146
147**参数:**
148
149| 参数名 | 类型   | 必填 | 说明                           |
150| ------ | ------ | ---- | ------------------------------ |
151| path   | string | 是   | 待打开文件目录的应用沙箱路径。 |
152
153**返回值:**
154
155  | 类型                         | 说明       |
156  | -------------------------- | -------- |
157  | Promise<[Dir](#dir)> | Promise对象。返回Dir对象。 |
158
159**示例:**
160
161  ```ts
162  import { BusinessError } from '@ohos.base';
163  let dirPath = pathDir + "/testDir";
164  fileio.opendir(dirPath).then((dir: fileio.Dir) => {
165    console.info("opendir succeed");
166  }).catch((err: BusinessError) => {
167    console.info("opendir failed with error:" + err);
168  });
169  ```
170
171
172## fileio.opendir
173
174opendir(path: string, callback: AsyncCallback<Dir>): void
175
176打开文件目录,使用callback异步回调。
177
178> **说明**:
179>
180> 从API version 9开始废弃,请使用[fs.listFile](js-apis-file-fs.md#fslistfile-1)替代。
181
182**系统能力**:SystemCapability.FileManagement.File.FileIO
183
184**参数:**
185
186| 参数名   | 类型                             | 必填 | 说明                           |
187| -------- | -------------------------------- | ---- | ------------------------------ |
188| path     | string                           | 是   | 待打开文件目录的应用沙箱路径。 |
189| callback | AsyncCallback<[Dir](#dir)> | 是   | 异步打开文件目录之后的回调。   |
190
191**示例:**
192
193  ```ts
194  import { BusinessError } from '@ohos.base';
195  fileio.opendir(pathDir, (err: BusinessError, dir: fileio.Dir) => {
196    // example code in Dir struct
197    // use read/readSync/close
198  });
199  ```
200
201
202## fileio.opendirSync
203
204opendirSync(path: string): Dir
205
206以同步方法打开文件目录。
207
208> **说明**:
209>
210> 从API version 9开始废弃,请使用[fs.listFileSync](js-apis-file-fs.md#fslistfilesync)替代。
211
212**系统能力**:SystemCapability.FileManagement.File.FileIO
213
214**参数:**
215
216| 参数名 | 类型   | 必填 | 说明                           |
217| ------ | ------ | ---- | ------------------------------ |
218| path   | string | 是   | 待打开文件目录的应用沙箱路径。 |
219
220**返回值:**
221
222  | 类型          | 说明       |
223  | ----------- | -------- |
224  | [Dir](#dir) | 返回Dir对象。 |
225
226**示例:**
227
228  ```ts
229  let dir = fileio.opendirSync(pathDir);
230  // example code in Dir struct
231  // use read/readSync/close
232  ```
233
234
235## fileio.access
236
237access(path: string, mode?: number): Promise<void>
238
239检查当前进程是否可访问某文件,使用Promise异步回调。
240
241> **说明**:
242>
243> 从API version 9开始废弃,请使用[fs.access](js-apis-file-fs.md#fsaccess)替代。
244
245**系统能力**:SystemCapability.FileManagement.File.FileIO
246
247**参数:**
248
249| 参数名 | 类型   | 必填 | 说明                                                         |
250| ------ | ------ | ---- | ------------------------------------------------------------ |
251| path   | string | 是   | 待访问文件的应用沙箱路径。                                   |
252| mode   | number | 否   | 访问文件时的选项,可给定如下选项,以按位或的方式使用多个选项,默认给定0。<br/>确认当前进程是否具有对应权限:<br/>-&nbsp;0:确认文件是否存在。<br/>-&nbsp;1:确认当前进程是否具有可执行权限。<br/>-&nbsp;2:确认当前进程是否具有写权限。<br/>-&nbsp;4:确认当前进程是否具有读权限。 |
253
254**返回值:**
255
256  | 类型                  | 说明                           |
257  | ------------------- | ---------------------------- |
258  | Promise&lt;void&gt; | Promise对象。无返回值。 |
259
260**示例:**
261
262  ```ts
263  import { BusinessError } from '@ohos.base';
264  let filePath = pathDir + "/test.txt";
265  fileio.access(filePath).then(() => {
266    console.info("access succeed");
267  }).catch((err: BusinessError) => {
268    console.info("access failed with error:" + err);
269  });
270  ```
271
272
273## fileio.access
274
275access(path: string, mode?: number, callback: AsyncCallback&lt;void&gt;): void
276
277检查当前进程是否可访问某文件,使用callback异步回调。
278
279> **说明**:
280>
281> 从API version 9开始废弃,请使用[fs.access](js-apis-file-fs.md#fsaccess-1)替代。
282
283**系统能力**:SystemCapability.FileManagement.File.FileIO
284
285**参数:**
286
287| 参数名   | 类型                      | 必填 | 说明                                                         |
288| -------- | ------------------------- | ---- | ------------------------------------------------------------ |
289| path     | string                    | 是   | 待访问文件的应用沙箱路径。                                   |
290| mode     | number                    | 否   | 访问文件时的选项,可给定如下选项,以按位或的方式使用多个选项,默认给定0。<br/>确认当前进程是否具有对应权限:<br/>-&nbsp;0:确认文件是否存在。<br/>-&nbsp;1:确认当前进程是否具有可执行权限。<br/>-&nbsp;2:确认当前进程是否具有写权限。<br/>-&nbsp;4:确认当前进程是否具有读权限。 |
291| callback | AsyncCallback&lt;void&gt; | 是   | 异步检查当前进程是否可访问某文件之后的回调。                 |
292
293**示例:**
294
295  ```ts
296  import { BusinessError } from '@ohos.base';
297  let filePath = pathDir + "/test.txt";
298  fileio.access(filePath, (err: BusinessError) => {
299    // do something
300  });
301  ```
302
303
304## fileio.accessSync
305
306accessSync(path: string, mode?: number): void
307
308以同步方法检查当前进程是否可访问某文件。
309
310> **说明**:
311>
312> 从API version 9开始废弃,请使用[fs.accessSync](js-apis-file-fs.md#fsaccesssync)替代。
313
314**系统能力**:SystemCapability.FileManagement.File.FileIO
315
316**参数:**
317
318| 参数名 | 类型   | 必填 | 说明                                                         |
319| ------ | ------ | ---- | ------------------------------------------------------------ |
320| path   | string | 是   | 待访问文件的应用沙箱路径。                                   |
321| mode   | number | 否   | 访问文件时的选项,可给定如下选项,以按位或的方式使用多个选项,默认给定0。<br/>确认当前进程是否具有对应权限:<br/>-&nbsp;0:确认文件是否存在。<br/>-&nbsp;1:确认当前进程是否具有可执行权限。<br/>-&nbsp;2:确认当前进程是否具有写权限。<br/>-&nbsp;4:确认当前进程是否具有读权限。 |
322
323**示例:**
324
325  ```ts
326  import { BusinessError } from '@ohos.base';
327  let filePath = pathDir + "/test.txt";
328  try {
329    fileio.accessSync(filePath);
330  } catch(err: unknown) {
331    console.info("accessSync failed with error:" + err);
332  }
333  ```
334
335
336## fileio.close<sup>7+</sup>
337
338close(fd: number): Promise&lt;void&gt;
339
340关闭文件,使用Promise异步回调。
341
342> **说明**:
343>
344> 从API version 9开始废弃,请使用[fs.close](js-apis-file-fs.md#fsclose)替代。
345
346**系统能力**:SystemCapability.FileManagement.File.FileIO
347
348**参数:**
349
350  | 参数名  | 类型     | 必填   | 说明           |
351  | ---- | ------ | ---- | ------------ |
352  | fd   | number | 是    | 待关闭文件的文件描述符。 |
353
354**返回值:**
355
356  | 类型                  | 说明                           |
357  | ------------------- | ---------------------------- |
358  | Promise&lt;void&gt; | Promise对象。无返回值。 |
359
360**示例:**
361
362  ```ts
363  import { BusinessError } from '@ohos.base';
364  let filePath = pathDir + "/test.txt";
365  let fd = fileio.openSync(filePath);
366  fileio.close(fd).then(() => {
367    console.info("close file succeed");
368  }).catch((err: BusinessError) => {
369    console.info("close file failed with error:" + err);
370  });
371  ```
372
373
374## fileio.close<sup>7+</sup>
375
376close(fd: number, callback: AsyncCallback&lt;void&gt;): void
377
378关闭文件,使用callback异步回调。
379
380> **说明**:
381>
382> 从API version 9开始废弃,请使用[fs.close](js-apis-file-fs.md#fsclose-1)替代。
383
384**系统能力**:SystemCapability.FileManagement.File.FileIO
385
386**参数:**
387
388  | 参数名      | 类型                        | 必填   | 说明           |
389  | -------- | ------------------------- | ---- | ------------ |
390  | fd       | number                    | 是    | 待关闭文件的文件描述符。 |
391  | callback | AsyncCallback&lt;void&gt; | 是    | 异步关闭文件之后的回调。 |
392
393**示例:**
394
395  ```ts
396  import { BusinessError } from '@ohos.base';
397  let filePath = pathDir + "/test.txt";
398  let fd = fileio.openSync(filePath);
399  fileio.close(fd, (err: BusinessError) => {
400    // do something
401  });
402  ```
403
404
405## fileio.closeSync
406
407closeSync(fd: number): void
408
409以同步方法关闭文件。
410
411> **说明**:
412>
413> 从API version 9开始废弃,请使用[fs.closeSync](js-apis-file-fs.md#fsclosesync)替代。
414
415**系统能力**:SystemCapability.FileManagement.File.FileIO
416
417**参数:**
418
419  | 参数名  | 类型     | 必填   | 说明           |
420  | ---- | ------ | ---- | ------------ |
421  | fd   | number | 是    | 待关闭文件的文件描述符。 |
422
423**示例:**
424
425  ```ts
426  let filePath = pathDir + "/test.txt";
427  let fd = fileio.openSync(filePath);
428  fileio.closeSync(fd);
429  ```
430
431
432## fileio.copyFile
433
434copyFile(src: string|number, dest: string|number, mode?: number): Promise&lt;void&gt;
435
436复制文件,使用Promise异步回调。
437
438> **说明**:
439>
440> 从API version 9开始废弃,请使用[fs.copyFile](js-apis-file-fs.md#fscopyfile)替代。
441
442**系统能力**:SystemCapability.FileManagement.File.FileIO
443
444**参数:**
445
446  | 参数名  | 类型                         | 必填   | 说明                                       |
447  | ---- | -------------------------- | ---- | ---------------------------------------- |
448  | src  | string\|number | 是    | 待复制文件的路径或待复制文件的描述符。                      |
449  | dest | string\|number | 是    | 目标文件路径或目标文件描述符。                          |
450  | mode | number                     | 否    | mode提供覆盖文件的选项,当前仅支持0,且默认为0。<br/>0:完全覆盖目标文件,未覆盖部分将被裁切掉。 |
451
452**返回值:**
453
454  | 类型                  | 说明                           |
455  | ------------------- | ---------------------------- |
456  | Promise&lt;void&gt; | Promise对象。无返回值。 |
457
458**示例:**
459
460  ```ts
461  import { BusinessError } from '@ohos.base';
462  let srcPath = pathDir + "srcDir/test.txt";
463  let dstPath = pathDir + "dstDir/test.txt";
464  fileio.copyFile(srcPath, dstPath).then(() => {
465    console.info("copyFile succeed");
466  }).catch((err: BusinessError) => {
467    console.info("copyFile failed with error:" + err);
468  });
469  ```
470
471
472## fileio.copyFile
473
474copyFile(src: string|number, dest: string|number, mode: number, callback: AsyncCallback&lt;void&gt;): void
475
476复制文件,使用callback异步回调。
477
478> **说明**:
479>
480> 从API version 9开始废弃,请使用[fs.copyFile](js-apis-file-fs.md#fscopyfile-1)替代。
481
482**系统能力**:SystemCapability.FileManagement.File.FileIO
483
484**参数:**
485
486  | 参数名      | 类型                         | 必填   | 说明                                       |
487  | -------- | -------------------------- | ---- | ---------------------------------------- |
488  | src      | string\|number | 是    | 待复制文件的路径或待复制文件的描述符。                      |
489  | dest     | string\|number | 是    | 目标文件路径或目标文件描述符。                          |
490  | mode     | number                     | 否    | mode提供覆盖文件的选项,当前仅支持0,且默认为0。<br/>0:完全覆盖目标文件,未覆盖部分将被裁切掉。 |
491  | callback | AsyncCallback&lt;void&gt;  | 是    | 异步复制文件之后的回调。                             |
492
493**示例:**
494
495  ```ts
496  import { BusinessError } from '@ohos.base';
497  let srcPath = pathDir + "srcDir/test.txt";
498  let dstPath = pathDir + "dstDir/test.txt";
499  fileio.copyFile(srcPath, dstPath, (err: BusinessError) => {
500    // do something
501  });
502  ```
503
504
505## fileio.copyFileSync
506
507copyFileSync(src: string|number, dest: string|number, mode?: number): void
508
509以同步方法复制文件。
510
511> **说明**:
512>
513> 从API version 9开始废弃,请使用[fs.copyFileSync](js-apis-file-fs.md#fscopyfilesync)替代。
514
515**系统能力**:SystemCapability.FileManagement.File.FileIO
516
517**参数:**
518
519  | 参数名  | 类型                         | 必填   | 说明                                       |
520  | ---- | -------------------------- | ---- | ---------------------------------------- |
521  | src  | string\|number | 是    | 待复制文件的路径或待复制文件的描述符。                      |
522  | dest | string\|number | 是    | 目标文件路径或目标文件描述符。                          |
523  | mode | number                     | 否    | mode提供覆盖文件的选项,当前仅支持0,且默认为0。<br/>0:完全覆盖目标文件,未覆盖部分将被裁切掉。 |
524
525**示例:**
526
527  ```ts
528  let srcPath = pathDir + "srcDir/test.txt";
529  let dstPath = pathDir + "dstDir/test.txt";
530  fileio.copyFileSync(srcPath, dstPath);
531  ```
532
533
534## fileio.mkdir
535
536mkdir(path: string, mode?: number): Promise&lt;void&gt;
537
538创建目录,使用Promise异步回调。
539
540> **说明**:
541>
542> 从API version 9开始废弃,请使用[fs.mkdir](js-apis-file-fs.md#fsmkdir)替代。
543
544**系统能力**:SystemCapability.FileManagement.File.FileIO
545
546**参数:**
547
548| 参数名 | 类型   | 必填 | 说明                                                         |
549| ------ | ------ | ---- | ------------------------------------------------------------ |
550| path   | string | 是   | 待创建目录的应用沙箱路径。                                   |
551| mode   | number | 否   | 创建目录的权限,可给定如下权限,以按位或的方式追加权限,默认给定0o775。<br/>-&nbsp;0o775:所有者具有读、写及可执行权限,其余用户具有读及可执行权限。<br/>-&nbsp;0o700:所有者具有读、写及可执行权限。<br/>-&nbsp;0o400:所有者具有读权限。<br/>-&nbsp;0o200:所有者具有写权限。<br/>-&nbsp;0o100:所有者具有可执行权限。<br/>-&nbsp;0o070:所有用户组具有读、写及可执行权限。<br/>-&nbsp;0o040:所有用户组具有读权限。<br/>-&nbsp;0o020:所有用户组具有写权限。<br/>-&nbsp;0o010:所有用户组具有可执行权限。<br/>-&nbsp;0o007:其余用户具有读、写及可执行权限。<br/>-&nbsp;0o004:其余用户具有读权限。<br/>-&nbsp;0o002:其余用户具有写权限。<br/>-&nbsp;0o001:其余用户具有可执行权限。 |
552
553**返回值:**
554
555  | 类型                  | 说明                           |
556  | ------------------- | ---------------------------- |
557  | Promise&lt;void&gt; | Promise对象。无返回值。 |
558
559**示例:**
560
561  ```ts
562  import { BusinessError } from '@ohos.base';
563  let dirPath = pathDir + '/testDir';
564  fileio.mkdir(dirPath).then(() => {
565    console.info("mkdir succeed");
566  }).catch((error: BusinessError) => {
567    console.info("mkdir failed with error:" + error);
568  });
569  ```
570
571
572## fileio.mkdir
573
574mkdir(path: string, mode: number, callback: AsyncCallback&lt;void&gt;): void
575
576创建目录,使用callback异步回调。
577
578> **说明**:
579>
580> 从API version 9开始废弃,请使用[fs.mkdir](js-apis-file-fs.md#fsmkdir-1)替代。
581
582**系统能力**:SystemCapability.FileManagement.File.FileIO
583
584**参数:**
585
586| 参数名   | 类型                      | 必填 | 说明                                                         |
587| -------- | ------------------------- | ---- | ------------------------------------------------------------ |
588| path     | string                    | 是   | 待创建目录的应用沙箱路径。                                   |
589| mode     | number                    | 否   | 创建目录的权限,可给定如下权限,以按位或的方式追加权限,默认给定0o775。<br/>-&nbsp;0o775:所有者具有读、写及可执行权限,其余用户具有读及可执行权限。<br/>-&nbsp;0o700:所有者具有读、写及可执行权限。<br/>-&nbsp;0o400:所有者具有读权限。<br/>-&nbsp;0o200:所有者具有写权限。<br/>-&nbsp;0o100:所有者具有可执行权限。<br/>-&nbsp;0o070:所有用户组具有读、写及可执行权限。<br/>-&nbsp;0o040:所有用户组具有读权限。<br/>-&nbsp;0o020:所有用户组具有写权限。<br/>-&nbsp;0o010:所有用户组具有可执行权限。<br/>-&nbsp;0o007:其余用户具有读、写及可执行权限。<br/>-&nbsp;0o004:其余用户具有读权限。<br/>-&nbsp;0o002:其余用户具有写权限。<br/>-&nbsp;0o001:其余用户具有可执行权限。 |
590| callback | AsyncCallback&lt;void&gt; | 是   | 异步创建目录操作完成之后的回调。                             |
591
592**示例:**
593
594  ```ts
595  import { BusinessError } from '@ohos.base';
596  let dirPath = pathDir + '/testDir';
597  fileio.mkdir(dirPath, (err: BusinessError) => {
598    console.info("mkdir succeed");
599  });
600  ```
601
602
603## fileio.mkdirSync
604
605mkdirSync(path: string, mode?: number): void
606
607以同步方法创建目录。
608
609> **说明**:
610>
611> 从API version 9开始废弃,请使用[fs.mkdirSync](js-apis-file-fs.md#fsmkdirsync)替代。
612
613**系统能力**:SystemCapability.FileManagement.File.FileIO
614
615**参数:**
616
617| 参数名 | 类型   | 必填 | 说明                                                         |
618| ------ | ------ | ---- | ------------------------------------------------------------ |
619| path   | string | 是   | 待创建目录的应用沙箱路径。                                   |
620| mode   | number | 否   | 创建目录的权限,可给定如下权限,以按位或的方式追加权限,默认给定0o775。<br/>-&nbsp;0o775:所有者具有读、写及可执行权限,其余用户具有读及可执行权限。<br/>-&nbsp;0o700:所有者具有读、写及可执行权限。<br/>-&nbsp;0o400:所有者具有读权限。<br/>-&nbsp;0o200:所有者具有写权限。<br/>-&nbsp;0o100:所有者具有可执行权限。<br/>-&nbsp;0o070:所有用户组具有读、写及可执行权限。<br/>-&nbsp;0o040:所有用户组具有读权限。<br/>-&nbsp;0o020:所有用户组具有写权限。<br/>-&nbsp;0o010:所有用户组具有可执行权限。<br/>-&nbsp;0o007:其余用户具有读、写及可执行权限。<br/>-&nbsp;0o004:其余用户具有读权限。<br/>-&nbsp;0o002:其余用户具有写权限。<br/>-&nbsp;0o001:其余用户具有可执行权限。 |
621
622**示例:**
623
624  ```ts
625  let dirPath = pathDir + '/testDir';
626  fileio.mkdirSync(dirPath);
627  ```
628
629
630## fileio.open<sup>7+</sup>
631
632open(path: string, flags?: number, mode?: number): Promise&lt;number&gt;
633
634打开文件,使用Promise异步回调。
635
636> **说明**:
637>
638> 从API version 9开始废弃,请使用[fs.open](js-apis-file-fs.md#fsopen)替代。
639
640**系统能力**:SystemCapability.FileManagement.File.FileIO
641
642**参数:**
643
644| 参数名 | 类型   | 必填 | 说明                                                         |
645| ------ | ------ | ---- | ------------------------------------------------------------ |
646| path   | string | 是   | 待打开文件的应用沙箱路径。                                   |
647| flags  | number | 否   | 打开文件的选项,必须指定如下选项中的一个,默认以只读方式打开:<br/>-&nbsp;0o0:只读打开。<br/>-&nbsp;0o1:只写打开。<br/>-&nbsp;0o2:读写打开。<br/>同时,也可给定如下选项,以按位或的方式追加,默认不给定任何额外选项:<br/>-&nbsp;0o100:若文件不存在,则创建文件。使用该选项时必须指定第三个参数&nbsp;mode。<br/>-&nbsp;0o200:如果追加了0o100选项,且文件已经存在,则出错。<br/>-&nbsp;0o1000:如果文件存在且以只写或读写的方式打开文件,则将其长度裁剪为零。<br/>-&nbsp;0o2000:以追加方式打开,后续写将追加到文件末尾。<br/>-&nbsp;0o4000:如果path指向FIFO、块特殊文件或字符特殊文件,则本次打开及后续&nbsp;IO&nbsp;进行非阻塞操作。<br/>-&nbsp;0o200000:如果path不指向目录,则出错。<br/>-&nbsp;0o400000:如果path指向符号链接,则出错。<br/>-&nbsp;0o4010000:以同步IO的方式打开文件。 |
648| mode   | number | 否   | 若创建文件,则指定文件的权限,可给定如下权限,以按位或的方式追加权限,默认给定0o660。<br/>-&nbsp;0o660:所有者具有读、写权限,所有用户组具有读、写权限。<br/>-&nbsp;0o700:所有者具有读、写及可执行权限。<br/>-&nbsp;0o400:所有者具有读权限。<br/>-&nbsp;0o200:所有者具有写权限。<br/>-&nbsp;0o100:所有者具有可执行权限。<br/>-&nbsp;0o070:所有用户组具有读、写及可执行权限。<br/>-&nbsp;0o040:所有用户组具有读权限。<br/>-&nbsp;0o020:所有用户组具有写权限。<br/>-&nbsp;0o010:所有用户组具有可执行权限。<br/>-&nbsp;0o007:其余用户具有读、写及可执行权限。<br/>-&nbsp;0o004:其余用户具有读权限。<br/>-&nbsp;0o002:其余用户具有写权限。<br/>-&nbsp;0o001:其余用户具有可执行权限。 |
649
650**返回值:**
651
652  | 类型                    | 说明          |
653  | --------------------- | ----------- |
654  | Promise&lt;number&gt; | Promise对象。返回打开文件的文件描述符。 |
655
656**示例:**
657
658  ```ts
659  import { BusinessError } from '@ohos.base';
660  let filePath = pathDir + "/test.txt";
661  fileio.open(filePath, 0o1, 0o0200).then((number: number) => {
662    console.info("open file succeed");
663  }).catch((err: BusinessError) => {
664    console.info("open file failed with error:" + err);
665  });
666  ```
667
668
669## fileio.open<sup>7+</sup>
670
671open(path: string, flags: number, mode: number, callback: AsyncCallback&lt;number&gt;): void
672
673打开文件,使用callback异步回调。
674
675> **说明**:
676>
677> 从API version 9开始废弃,请使用[fs.open](js-apis-file-fs.md#fsopen-1)替代。
678
679**系统能力**:SystemCapability.FileManagement.File.FileIO
680
681**参数:**
682
683| 参数名   | 类型                            | 必填 | 说明                                                         |
684| -------- | ------------------------------- | ---- | ------------------------------------------------------------ |
685| path     | string                          | 是   | 待打开文件的应用沙箱路径。                                   |
686| flags    | number                          | 否   | 打开文件的选项,必须指定如下选项中的一个,默认以只读方式打开:<br/>-&nbsp;0o0:只读打开。<br/>-&nbsp;0o1:只写打开。<br/>-&nbsp;0o2:读写打开。<br/>同时,也可给定如下选项,以按位或的方式追加,默认不给定任何额外选项:<br/>-&nbsp;0o100:若文件不存在,则创建文件。使用该选项时必须指定第三个参数&nbsp;mode。<br/>-&nbsp;0o200:如果追加了0o100选项,且文件已经存在,则出错。<br/>-&nbsp;0o1000:如果文件存在且以只写或读写的方式打开文件,则将其长度裁剪为零。<br/>-&nbsp;0o2000:以追加方式打开,后续写将追加到文件末尾。<br/>-&nbsp;0o4000:如果path指向FIFO、块特殊文件或字符特殊文件,则本次打开及后续&nbsp;IO&nbsp;进行非阻塞操作。<br/>-&nbsp;0o200000:如果path不指向目录,则出错。<br/>-&nbsp;0o400000:如果path指向符号链接,则出错。<br/>-&nbsp;0o4010000:以同步IO的方式打开文件。 |
687| mode     | number                          | 否   | 若创建文件,则指定文件的权限,可给定如下权限,以按位或的方式追加权限,默认给定0o660。<br/>-&nbsp;0o660:所有者具有读、写权限,所有用户组具有读、写权限。<br/>-&nbsp;0o700:所有者具有读、写及可执行权限。<br/>-&nbsp;0o400:所有者具有读权限。<br/>-&nbsp;0o200:所有者具有写权限。<br/>-&nbsp;0o100:所有者具有可执行权限。<br/>-&nbsp;0o070:所有用户组具有读、写及可执行权限。<br/>-&nbsp;0o040:所有用户组具有读权限。<br/>-&nbsp;0o020:所有用户组具有写权限。<br/>-&nbsp;0o010:所有用户组具有可执行权限。<br/>-&nbsp;0o007:其余用户具有读、写及可执行权限。<br/>-&nbsp;0o004:其余用户具有读权限。<br/>-&nbsp;0o002:其余用户具有写权限。<br/>-&nbsp;0o001:其余用户具有可执行权限。 |
688| callback | AsyncCallback&lt;number&gt; | 是   | 异步打开文件之后的回调。                                     |
689
690**示例:**
691
692  ```ts
693  import { BusinessError } from '@ohos.base';
694  let filePath = pathDir + "/test.txt";
695  fileio.open(filePath, 0, (err: BusinessError, fd: number) => {
696    // do something
697  });
698  ```
699
700
701## fileio.openSync
702
703openSync(path: string, flags?: number, mode?: number): number
704
705以同步方法打开文件。
706
707> **说明**:
708>
709> 从API version 9开始废弃,请使用[fs.openSync](js-apis-file-fs.md#fsopensync)替代。
710
711**系统能力**:SystemCapability.FileManagement.File.FileIO
712
713**参数:**
714
715| 参数名 | 类型   | 必填 | 说明                                                         |
716| ------ | ------ | ---- | ------------------------------------------------------------ |
717| path   | string | 是   | 待打开文件的应用沙箱路径。                                   |
718| flags  | number | 否   | 打开文件的选项,必须指定如下选项中的一个,默认以只读方式打开:<br/>-&nbsp;0o0:只读打开。<br/>-&nbsp;0o1:只写打开。<br/>-&nbsp;0o2:读写打开。<br/>同时,也可给定如下选项,以按位或的方式追加,默认不给定任何额外选项:<br/>-&nbsp;0o100:若文件不存在,则创建文件。使用该选项时必须指定第三个参数&nbsp;mode。<br/>-&nbsp;0o200:如果追加了0o100选项,且文件已经存在,则出错。<br/>-&nbsp;0o1000:如果文件存在且以只写或读写的方式打开文件,则将其长度裁剪为零。<br/>-&nbsp;0o2000:以追加方式打开,后续写将追加到文件末尾。<br/>-&nbsp;0o4000:如果path指向FIFO、块特殊文件或字符特殊文件,则本次打开及后续&nbsp;IO&nbsp;进行非阻塞操作。<br/>-&nbsp;0o200000:如果path不指向目录,则出错。<br/>-&nbsp;0o400000:如果path指向符号链接,则出错。<br/>-&nbsp;0o4010000:以同步IO的方式打开文件。 |
719| mode   | number | 否   | 若创建文件,则指定文件的权限,可给定如下权限,以按位或的方式追加权限,默认给定0o660。<br/>-&nbsp;0o660:所有者具有读、写权限,所有用户组具有读、写权限。<br/>-&nbsp;0o640:所有者具有读、写权限,所有用户组具有读权限。<br/>-&nbsp;0o700:所有者具有读、写及可执行权限。<br/>-&nbsp;0o400:所有者具有读权限。<br/>-&nbsp;0o200:所有者具有写权限。<br/>-&nbsp;0o100:所有者具有可执行权限。<br/>-&nbsp;0o070:所有用户组具有读、写及可执行权限。<br/>-&nbsp;0o040:所有用户组具有读权限。<br/>-&nbsp;0o020:所有用户组具有写权限。<br/>-&nbsp;0o010:所有用户组具有可执行权限。<br/>-&nbsp;0o007:其余用户具有读、写及可执行权限。<br/>-&nbsp;0o004:其余用户具有读权限。<br/>-&nbsp;0o002:其余用户具有写权限。<br/>-&nbsp;0o001:其余用户具有可执行权限。<br/>创建出的文件权限受umask影响,umask随进程启动确定,其修改当前不开放。 |
720
721**返回值:**
722
723  | 类型     | 说明          |
724  | ------ | ----------- |
725  | number | 打开文件的文件描述符。 |
726
727**示例:**
728
729  ```ts
730  let filePath = pathDir + "/test.txt";
731  let fd = fileio.openSync(filePath, 0o102, 0o640);
732  ```
733  ```ts
734  let filePath = pathDir + "/test.txt";
735  let fd = fileio.openSync(filePath, 0o102, 0o666);
736  fileio.writeSync(fd, 'hello world');
737  let fd1 = fileio.openSync(filePath, 0o2002);
738  fileio.writeSync(fd1, 'hello world');
739  class Option {
740    offset: number = 0;
741    length: number = 4096;
742    position: number = 0;
743  }
744  let option = new Option();
745  option.position = 0;
746  let buf = new ArrayBuffer(4096)
747  let num = fileio.readSync(fd1, buf, option);
748  console.info("num == " + num);
749  ```
750
751
752## fileio.read
753
754read(fd: number, buffer: ArrayBuffer, options?: { offset?: number; length?: number; position?: number; }): Promise&lt;ReadOut&gt;
755
756从文件读取数据,使用Promise异步回调。
757
758> **说明**:
759>
760> 从API version 9开始废弃,请使用[fs.read](js-apis-file-fs.md#fsread)替代。
761
762**系统能力**:SystemCapability.FileManagement.File.FileIO
763
764**参数:**
765
766| 参数名  | 类型        | 必填 | 说明                                                         |
767| ------- | ----------- | ---- | ------------------------------------------------------------ |
768| fd      | number      | 是   | 待读取文件的文件描述符。                                     |
769| buffer  | ArrayBuffer | 是   | 用于保存读取到的文件数据的缓冲区。                           |
770| options | Object      | 否   | 支持如下选项:<br/>-&nbsp;offset,number类型,表示将数据读取到缓冲区的位置,即相对于缓冲区首地址的偏移。可选,默认为0。<br/>-&nbsp;length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度减去偏移长度。<br/>-&nbsp;position,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读。<br/>约束:offset+length<=buffer.size。 |
771
772**返回值:**
773
774  | 类型                                 | 说明     |
775  | ---------------------------------- | ------ |
776  | Promise&lt;[ReadOut](#readout)&gt; | Promise对象。返回读取的结果。 |
777
778**示例:**
779
780  ```ts
781  import { BusinessError } from '@ohos.base';
782  import buffer from '@ohos.buffer';
783  import { ReadOut } from '@ohos.fileio';
784  let filePath = pathDir + "/test.txt";
785  let fd = fileio.openSync(filePath, 0o102, 0o640);
786  let arrayBuffer = new ArrayBuffer(4096);
787  fileio.read(fd, arrayBuffer).then((readResult: fileio.ReadOut) => {
788    console.info("read file data succeed");
789    let buf = buffer.from(arrayBuffer, 0, readResult.bytesRead);
790    console.log(`The content of file: ${buf.toString()}`);
791    fileio.closeSync(fd);
792  }).catch((err: BusinessError) => {
793    console.info("read file data failed with error:" + err);
794  });
795  ```
796
797
798## fileio.read
799
800read(fd: number, buffer: ArrayBuffer, options: { offset?: number; length?: number; position?: number; }, callback: AsyncCallback&lt;ReadOut&gt;): void
801
802从文件读取数据,使用callback异步回调。
803
804> **说明**:
805>
806> 从API version 9开始废弃,请使用[fs.read](js-apis-file-fs.md#fsread-1)替代。
807
808**系统能力**:SystemCapability.FileManagement.File.FileIO
809
810**参数:**
811
812  | 参数名      | 类型                                       | 必填   | 说明                                       |
813  | -------- | ---------------------------------------- | ---- | ---------------------------------------- |
814  | fd       | number                                   | 是    | 待读取文件的文件描述符。                             |
815  | buffer   | ArrayBuffer                              | 是    | 用于保存读取到的文件数据的缓冲区。                        |
816  | options  | Object                                   | 否    | 支持如下选项:<br/>-&nbsp;offset,number类型,表示将数据读取到缓冲区的位置,即相对于缓冲区首地址的偏移。可选,默认为0。<br/>-&nbsp;length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度减去偏移长度。<br/>-&nbsp;position,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读。<br/>约束:offset+length<=buffer.size。  |
817  | callback | AsyncCallback&lt;[ReadOut](#readout)&gt; | 是    | 异步读取数据之后的回调。                             |
818
819**示例:**
820
821  ```ts
822  import { BusinessError } from '@ohos.base';
823  import buffer from '@ohos.buffer';
824  import { ReadOut } from '@ohos.fileio';
825  let filePath = pathDir + "/test.txt";
826  let fd = fileio.openSync(filePath, 0o102, 0o640);
827  let arrayBuffer = new ArrayBuffer(4096);
828  fileio.read(fd, arrayBuffer, (err: BusinessError, readResult: fileio.ReadOut) => {
829    if (readResult) {
830      console.info("read file data succeed");
831      let buf = buffer.from(arrayBuffer, 0, readResult.bytesRead);
832      console.info(`The content of file: ${buf.toString()}`);
833    }
834    fileio.closeSync(fd);
835  });
836  ```
837
838
839## fileio.readSync
840
841readSync(fd: number, buffer: ArrayBuffer, options?: { offset?: number; length?: number; position?: number; }): number
842
843以同步方法从文件读取数据。
844
845> **说明**:
846>
847> 从API version 9开始废弃,请使用[fs.readSync](js-apis-file-fs.md#fsreadsync)替代。
848
849**系统能力**:SystemCapability.FileManagement.File.FileIO
850
851**参数:**
852
853  | 参数名     | 类型          | 必填   | 说明                                       |
854  | ------- | ----------- | ---- | ---------------------------------------- |
855  | fd      | number      | 是    | 待读取文件的文件描述符。                             |
856  | buffer  | ArrayBuffer | 是    | 用于保存读取到的文件数据的缓冲区。                        |
857  | options | Object      | 否    | 支持如下选项:<br/>-&nbsp;offset,number类型,表示将数据读取到缓冲区的位置,即相对于缓冲区首地址的偏移。可选,默认为0。<br/>-&nbsp;length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度减去偏移长度。<br/>-&nbsp;position,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读。<br/>约束:offset+length<=buffer.size。  |
858
859**返回值:**
860
861  | 类型     | 说明       |
862  | ------ | -------- |
863  | number | 实际读取的长度。 |
864
865**示例:**
866
867  ```ts
868  let filePath = pathDir + "/test.txt";
869  let fd = fileio.openSync(filePath, 0o102, 0o640);
870  let buf = new ArrayBuffer(4096);
871  let num = fileio.readSync(fd, buf);
872  ```
873
874
875## fileio.rmdir<sup>7+</sup>
876
877rmdir(path: string): Promise&lt;void&gt;
878
879删除目录,使用Promise异步回调。
880
881> **说明**:
882>
883> 从API version 9开始废弃,请使用[fs.rmdir](js-apis-file-fs.md#fsrmdir)替代。
884
885**系统能力**:SystemCapability.FileManagement.File.FileIO
886
887**参数:**
888
889| 参数名 | 类型   | 必填 | 说明                       |
890| ------ | ------ | ---- | -------------------------- |
891| path   | string | 是   | 待删除目录的应用沙箱路径。 |
892
893**返回值:**
894
895  | 类型                  | 说明                           |
896  | ------------------- | ---------------------------- |
897  | Promise&lt;void&gt; | Promise对象。无返回值。 |
898
899**示例:**
900
901  ```ts
902  import { BusinessError } from '@ohos.base';
903  let dirPath = pathDir + '/testDir';
904  fileio.rmdir(dirPath).then(() => {
905    console.info("rmdir succeed");
906  }).catch((err: BusinessError) => {
907    console.info("rmdir failed with error:" + err);
908  });
909  ```
910
911
912## fileio.rmdir<sup>7+</sup>
913
914rmdir(path: string, callback: AsyncCallback&lt;void&gt;): void
915
916删除目录,使用callback异步回调。
917
918> **说明**:
919>
920> 从API version 9开始废弃,请使用[fs.rmdir](js-apis-file-fs.md#fsrmdir-1)替代。
921
922**系统能力**:SystemCapability.FileManagement.File.FileIO
923
924**参数:**
925
926| 参数名   | 类型                      | 必填 | 说明                       |
927| -------- | ------------------------- | ---- | -------------------------- |
928| path     | string                    | 是   | 待删除目录的应用沙箱路径。 |
929| callback | AsyncCallback&lt;void&gt; | 是   | 异步删除目录之后的回调。   |
930
931**示例:**
932
933  ```ts
934  import { BusinessError } from '@ohos.base';
935  let dirPath = pathDir + '/testDir';
936  fileio.rmdir(dirPath, (err: BusinessError) => {
937    // do something
938    console.info("rmdir succeed");
939  });
940  ```
941
942
943## fileio.rmdirSync<sup>7+</sup>
944
945rmdirSync(path: string): void
946
947以同步方法删除目录。
948
949> **说明**:
950>
951> 从API version 9开始废弃,请使用[fs.rmdirSync](js-apis-file-fs.md#fsrmdirsync)替代。
952
953**系统能力**:SystemCapability.FileManagement.File.FileIO
954
955**参数:**
956
957| 参数名 | 类型   | 必填 | 说明                       |
958| ------ | ------ | ---- | -------------------------- |
959| path   | string | 是   | 待删除目录的应用沙箱路径。 |
960
961**示例:**
962
963  ```ts
964  let dirPath = pathDir + '/testDir';
965  fileio.rmdirSync(dirPath);
966  ```
967
968
969## fileio.unlink
970
971unlink(path: string): Promise&lt;void&gt;
972
973删除文件,使用Promise异步回调。
974
975> **说明**:
976>
977> 从API version 9开始废弃,请使用[fs.unlink](js-apis-file-fs.md#fsunlink)替代。
978
979**系统能力**:SystemCapability.FileManagement.File.FileIO
980
981**参数:**
982
983| 参数名 | 类型   | 必填 | 说明                       |
984| ------ | ------ | ---- | -------------------------- |
985| path   | string | 是   | 待删除文件的应用沙箱路径。 |
986
987**返回值:**
988
989  | 类型                  | 说明                           |
990  | ------------------- | ---------------------------- |
991  | Promise&lt;void&gt; | Promise对象。无返回值。 |
992
993**示例:**
994
995  ```ts
996  import { BusinessError } from '@ohos.base';
997  let filePath = pathDir + "/test.txt";
998  fileio.unlink(filePath).then(() => {
999    console.info("remove file succeed");
1000  }).catch((error: BusinessError) => {
1001    console.info("remove file failed with error:" + error);
1002  });
1003  ```
1004
1005
1006## fileio.unlink
1007
1008unlink(path: string, callback: AsyncCallback&lt;void&gt;): void
1009
1010删除文件,使用callback异步回调。
1011
1012> **说明**:
1013>
1014> 从API version 9开始废弃,请使用[fs.unlink](js-apis-file-fs.md#fsunlink-1)替代。
1015
1016**系统能力**:SystemCapability.FileManagement.File.FileIO
1017
1018**参数:**
1019
1020| 参数名   | 类型                      | 必填 | 说明                       |
1021| -------- | ------------------------- | ---- | -------------------------- |
1022| path     | string                    | 是   | 待删除文件的应用沙箱路径。 |
1023| callback | AsyncCallback&lt;void&gt; | 是   | 异步删除文件之后的回调。   |
1024
1025**示例:**
1026
1027  ```ts
1028  import { BusinessError } from '@ohos.base';
1029  let filePath = pathDir + "/test.txt";
1030  fileio.unlink(filePath, (err: BusinessError) => {
1031    console.info("remove file succeed");
1032  });
1033  ```
1034
1035
1036## fileio.unlinkSync
1037
1038unlinkSync(path: string): void
1039
1040以同步方法删除文件。
1041
1042> **说明**:
1043>
1044> 从API version 9开始废弃,请使用[fs.unlinkSync](js-apis-file-fs.md#fsunlinksync)替代。
1045
1046**系统能力**:SystemCapability.FileManagement.File.FileIO
1047
1048**参数:**
1049
1050| 参数名 | 类型   | 必填 | 说明                       |
1051| ------ | ------ | ---- | -------------------------- |
1052| path   | string | 是   | 待删除文件的应用沙箱路径。 |
1053
1054**示例:**
1055
1056  ```ts
1057  let filePath = pathDir + "/test.txt";
1058  fileio.unlinkSync(filePath);
1059  ```
1060
1061
1062## fileio.write
1063
1064write(fd: number, buffer: ArrayBuffer|string, options?: { offset?: number; length?: number; position?: number; encoding?: string; }): Promise&lt;number&gt;
1065
1066将数据写入文件,使用Promise异步回调。
1067
1068> **说明**:
1069>
1070> 从API version 9开始废弃,请使用[fs.write](js-apis-file-fs.md#fswrite)替代。
1071
1072**系统能力**:SystemCapability.FileManagement.File.FileIO
1073
1074**参数:**
1075
1076  | 参数名     | 类型                              | 必填   | 说明                                       |
1077  | ------- | ------------------------------- | ---- | ---------------------------------------- |
1078  | fd      | number                          | 是    | 待写入文件的文件描述符。                             |
1079  | buffer  | ArrayBuffer\|string | 是    | 待写入文件的数据,可来自缓冲区或字符串。                     |
1080  | options | Object                          | 否    | 支持如下选项:<br/>-&nbsp;offset,number类型,表示期望写入数据的位置相对于数据首地址的偏移。可选,默认为0。<br/>-&nbsp;length,number类型,表示期望写入数据的长度。可选,默认缓冲区长度减去偏移长度。<br/>-&nbsp;position,number类型,表示期望写入文件的位置。可选,默认从当前位置开始写。<br/>-&nbsp;encoding,string类型,当数据是string类型时有效,表示数据的编码方式,默认&nbsp;'utf-8'。仅支持&nbsp;'utf-8'。<br/>约束:offset+length<=buffer.size。 |
1081
1082**返回值:**
1083
1084  | 类型                    | 说明       |
1085  | --------------------- | -------- |
1086  | Promise&lt;number&gt; | Promise对象。返回实际写入的长度。 |
1087
1088**示例:**
1089
1090  ```ts
1091  import { BusinessError } from '@ohos.base';
1092  let filePath = pathDir + "/test.txt";
1093  let fd = fileio.openSync(filePath, 0o100 | 0o2, 0o666);
1094  fileio.write(fd, "hello, world").then((number: number) => {
1095    console.info("write data to file succeed and size is:" + number);
1096  }).catch((err: BusinessError) => {
1097    console.info("write data to file failed with error:" + err);
1098  });
1099  ```
1100
1101
1102## fileio.write
1103
1104write(fd: number, buffer: ArrayBuffer|string, options: { offset?: number; length?: number; position?: number; encoding?: string; }, callback: AsyncCallback&lt;number&gt;): void
1105
1106将数据写入文件,使用callback异步回调。
1107
1108> **说明**:
1109>
1110> 从API version 9开始废弃,请使用[fs.write](js-apis-file-fs.md#fswrite-1)替代。
1111
1112**系统能力**:SystemCapability.FileManagement.File.FileIO
1113
1114**参数:**
1115
1116  | 参数名      | 类型                              | 必填   | 说明                                       |
1117  | -------- | ------------------------------- | ---- | ---------------------------------------- |
1118  | fd       | number                          | 是    | 待写入文件的文件描述符。                             |
1119  | buffer   | ArrayBuffer\|string | 是    | 待写入文件的数据,可来自缓冲区或字符串。                     |
1120  | options  | Object                          | 否    | 支持如下选项:<br/>-&nbsp;offset,number类型,表示期望写入数据的位置相对于数据首地址的偏移。可选,默认为0。<br/>-&nbsp;length,number类型,表示期望写入数据的长度。可选,默认缓冲区长度减去偏移长度。<br/>-&nbsp;position,number类型,表示期望写入文件的位置。可选,默认从当前位置开始写。<br/>-&nbsp;encoding,string类型,当数据是string类型时有效,表示数据的编码方式,默认&nbsp;'utf-8'。仅支持&nbsp;'utf-8'。<br/>约束:offset+length<=buffer.size。 |
1121  | callback | AsyncCallback&lt;number&gt;     | 是    | 异步将数据写入完成后执行的回调函数。                       |
1122
1123**示例:**
1124
1125  ```ts
1126  import { BusinessError } from '@ohos.base';
1127  let filePath = pathDir + "/test.txt";
1128  let fd = fileio.openSync(filePath, 0o100 | 0o2, 0o666);
1129  fileio.write(fd, "hello, world", (err: BusinessError, bytesWritten: number) => {
1130    if (bytesWritten) {
1131      console.info("write data to file succeed and size is:" + bytesWritten);
1132    }
1133  });
1134  ```
1135
1136
1137## fileio.writeSync
1138
1139writeSync(fd: number, buffer: ArrayBuffer|string, options?: { offset?: number; length?: number; position?: number; encoding?: string; }): number
1140
1141以同步方法将数据写入文件。
1142
1143> **说明**:
1144>
1145> 从API version 9开始废弃,请使用[fs.writeSync](js-apis-file-fs.md#fswritesync)替代。
1146
1147**系统能力**:SystemCapability.FileManagement.File.FileIO
1148
1149**参数:**
1150
1151  | 参数名     | 类型                              | 必填   | 说明                                       |
1152  | ------- | ------------------------------- | ---- | ---------------------------------------- |
1153  | fd      | number                          | 是    | 待写入文件的文件描述符。                             |
1154  | buffer  | ArrayBuffer\|string | 是    | 待写入文件的数据,可来自缓冲区或字符串。                     |
1155  | options | Object                          | 否    | 支持如下选项:<br/>-&nbsp;offset,number类型,表示期望写入数据的位置相对于数据首地址的偏移。可选,默认为0。<br/>-&nbsp;length,number类型,表示期望写入数据的长度。可选,默认缓冲区长度减去偏移长度。<br/>-&nbsp;position,number类型,表示期望写入文件的位置。可选,默认从当前位置开始写。<br/>-&nbsp;encoding,string类型,当数据是string类型时有效,表示数据的编码方式,默认&nbsp;'utf-8'。仅支持&nbsp;'utf-8'。<br/>约束:offset+length<=buffer.size。 |
1156
1157**返回值:**
1158
1159  | 类型     | 说明       |
1160  | ------ | -------- |
1161  | number | 实际写入的长度。 |
1162
1163**示例:**
1164
1165  ```ts
1166  let filePath = pathDir + "/test.txt";
1167  let fd = fileio.openSync(filePath, 0o100 | 0o2, 0o666);
1168  let num = fileio.writeSync(fd, "hello, world");
1169  ```
1170
1171
1172## fileio.hash
1173
1174hash(path: string, algorithm: string): Promise&lt;string&gt;
1175
1176计算文件的哈希值,使用Promise异步回调。
1177
1178> **说明**:
1179>
1180> 从API version 9开始废弃,请使用[hash.write](js-apis-file-hash.md#hashhash)替代。
1181
1182**系统能力**:SystemCapability.FileManagement.File.FileIO
1183
1184**参数:**
1185
1186| 参数名    | 类型   | 必填 | 说明                                                         |
1187| --------- | ------ | ---- | ------------------------------------------------------------ |
1188| path      | string | 是   | 待计算哈希值文件的应用沙箱路径。                             |
1189| algorithm | string | 是   | 哈希计算采用的算法。可选&nbsp;"md5"、"sha1"&nbsp;或&nbsp;"sha256"。建议采用安全强度更高的&nbsp;"sha256"。 |
1190
1191**返回值:**
1192
1193  | 类型                    | 说明                         |
1194  | --------------------- | -------------------------- |
1195  | Promise&lt;string&gt; | Promise对象。返回文件的哈希值。表示为十六进制数字串,所有字母均大写。 |
1196
1197**示例:**
1198
1199  ```ts
1200  import { BusinessError } from '@ohos.base';
1201  let filePath = pathDir + "/test.txt";
1202  fileio.hash(filePath, "sha256").then((str: string) => {
1203    console.info("calculate file hash succeed:" + str);
1204  }).catch((err: BusinessError) => {
1205    console.info("calculate file hash failed with error:" + err);
1206  });
1207  ```
1208
1209
1210## fileio.hash
1211
1212hash(path: string, algorithm: string, callback: AsyncCallback&lt;string&gt;): void
1213
1214计算文件的哈希值,使用callback异步回调。
1215
1216> **说明**:
1217>
1218> 从API version 9开始废弃,请使用[hash.write](js-apis-file-hash.md#hashhash-1)替代。
1219
1220**系统能力**:SystemCapability.FileManagement.File.FileIO
1221
1222**参数:**
1223
1224| 参数名    | 类型                        | 必填 | 说明                                                         |
1225| --------- | --------------------------- | ---- | ------------------------------------------------------------ |
1226| path      | string                      | 是   | 待计算哈希值文件的应用沙箱路径。                             |
1227| algorithm | string                      | 是   | 哈希计算采用的算法。可选&nbsp;"md5"、"sha1"&nbsp;或&nbsp;"sha256"。建议采用安全强度更高的&nbsp;"sha256"。 |
1228| callback  | AsyncCallback&lt;string&gt; | 是   | 异步计算文件哈希操作之后的回调函数(其中给定文件哈希值表示为十六进制数字串,所有字母均大写)。 |
1229
1230**示例:**
1231
1232  ```ts
1233  import { BusinessError } from '@ohos.base';
1234  let filePath = pathDir + "/test.txt";
1235  fileio.hash(filePath, "sha256", (err: BusinessError, hashStr: string) => {
1236    if (hashStr) {
1237      console.info("calculate file hash succeed:" + hashStr);
1238    }
1239  });
1240  ```
1241
1242
1243## fileio.chmod<sup>7+</sup>
1244
1245chmod(path: string, mode: number): Promise&lt;void&gt;
1246
1247改变文件权限,使用Promise异步回调。
1248
1249> **说明**:
1250>
1251> 从API version 9开始废弃。
1252
1253**系统能力**:SystemCapability.FileManagement.File.FileIO
1254
1255**参数:**
1256
1257| 参数名 | 类型   | 必填 | 说明                                                         |
1258| ------ | ------ | ---- | ------------------------------------------------------------ |
1259| path   | string | 是   | 所需变更权限的文件的应用沙箱路径。                               |
1260| mode   | number | 是   | 改变文件权限,可给定如下权限,以按位或的方式追加权限。<br/>-&nbsp;0o700:所有者具有读、写及可执行权限。<br/>-&nbsp;0o400:所有者具有读权限。<br/>-&nbsp;0o200:所有者具有写权限。<br/>-&nbsp;0o100:所有者具有可执行权限。<br/>-&nbsp;0o070:所有用户组具有读、写及可执行权限。<br/>-&nbsp;0o040:所有用户组具有读权限。<br/>-&nbsp;0o020:所有用户组具有写权限。<br/>-&nbsp;0o010:所有用户组具有可执行权限。<br/>-&nbsp;0o007:其余用户具有读、写及可执行权限。<br/>-&nbsp;0o004:其余用户具有读权限。<br/>-&nbsp;0o002:其余用户具有写权限。<br/>-&nbsp;0o001:其余用户具有可执行权限。 |
1261
1262**返回值:**
1263
1264  | 类型                  | 说明                           |
1265  | ------------------- | ---------------------------- |
1266  | Promise&lt;void&gt; | Promise对象。无返回值。 |
1267
1268**示例:**
1269
1270  ```ts
1271  import { BusinessError } from '@ohos.base';
1272  let filePath = pathDir + "/test.txt";
1273  fileio.chmod(filePath, 0o700).then(() => {
1274    console.info("chmod succeed");
1275  }).catch((err: BusinessError) => {
1276    console.info("chmod failed with error:" + err);
1277  });
1278  ```
1279
1280
1281## fileio.chmod<sup>7+</sup>
1282
1283chmod(path: string, mode: number, callback: AsyncCallback&lt;void&gt;): void
1284
1285改变文件权限,使用callback异步回调。
1286
1287> **说明**:
1288>
1289> 从API version 9开始废弃。
1290
1291**系统能力**:SystemCapability.FileManagement.File.FileIO
1292
1293**参数:**
1294
1295| 参数名   | 类型                      | 必填 | 说明                                                         |
1296| -------- | ------------------------- | ---- | ------------------------------------------------------------ |
1297| path     | string                    | 是   | 所需变更权限的文件的应用沙箱路径。                               |
1298| mode     | number                    | 是   | 改变文件权限,可给定如下权限,以按位或的方式追加权限。<br/>-&nbsp;0o700:所有者具有读、写及可执行权限。<br/>-&nbsp;0o400:所有者具有读权限。<br/>-&nbsp;0o200:所有者具有写权限。<br/>-&nbsp;0o100:所有者具有可执行权限。<br/>-&nbsp;0o070:所有用户组具有读、写及可执行权限。<br/>-&nbsp;0o040:所有用户组具有读权限。<br/>-&nbsp;0o020:所有用户组具有写权限。<br/>-&nbsp;0o010:所有用户组具有可执行权限。<br/>-&nbsp;0o007:其余用户具有读、写及可执行权限。<br/>-&nbsp;0o004:其余用户具有读权限。<br/>-&nbsp;0o002:其余用户具有写权限。<br/>-&nbsp;0o001:其余用户具有可执行权限。 |
1299| callback | AsyncCallback&lt;void&gt; | 是   | 异步改变文件权限之后的回调。                                 |
1300
1301**示例:**
1302
1303  ```ts
1304  import { BusinessError } from '@ohos.base';
1305  let filePath = pathDir + "/test.txt";
1306  fileio.chmod(filePath, 0o700, (err: BusinessError) => {
1307    // do something
1308  });
1309  ```
1310
1311
1312## fileio.chmodSync<sup>7+</sup>
1313
1314chmodSync(path: string, mode: number): void
1315
1316以同步方法改变文件权限。
1317
1318> **说明**:
1319>
1320> 从API version 9开始废弃。
1321
1322**系统能力**:SystemCapability.FileManagement.File.FileIO
1323
1324**参数:**
1325
1326| 参数名 | 类型   | 必填 | 说明                                                         |
1327| ------ | ------ | ---- | ------------------------------------------------------------ |
1328| path   | string | 是   | 所需变更权限的文件的应用沙箱路径。                               |
1329| mode   | number | 是   | 改变文件权限,可给定如下权限,以按位或的方式追加权限。<br/>-&nbsp;0o700:所有者具有读、写及可执行权限。<br/>-&nbsp;0o400:所有者具有读权限。<br/>-&nbsp;0o200:所有者具有写权限。<br/>-&nbsp;0o100:所有者具有可执行权限。<br/>-&nbsp;0o070:所有用户组具有读、写及可执行权限。<br/>-&nbsp;0o040:所有用户组具有读权限。<br/>-&nbsp;0o020:所有用户组具有写权限。<br/>-&nbsp;0o010:所有用户组具有可执行权限。<br/>-&nbsp;0o007:其余用户具有读、写及可执行权限。<br/>-&nbsp;0o004:其余用户具有读权限。<br/>-&nbsp;0o002:其余用户具有写权限。<br/>-&nbsp;0o001:其余用户具有可执行权限。 |
1330
1331**示例:**
1332
1333  ```ts
1334  let filePath = pathDir + "/test.txt";
1335  fileio.chmodSync(filePath, 0o700);
1336  ```
1337
1338
1339## fileio.fstat<sup>7+</sup>
1340
1341fstat(fd: number): Promise&lt;Stat&gt;
1342
1343基于文件描述符获取文件状态信息,使用Promise异步回调。
1344
1345> **说明**:
1346>
1347> 从API version 9开始废弃,请使用[fs.stat](js-apis-file-fs.md#fsstat)替代。
1348
1349**系统能力**:SystemCapability.FileManagement.File.FileIO
1350
1351**参数:**
1352
1353  | 参数名  | 类型     | 必填   | 说明           |
1354  | ---- | ------ | ---- | ------------ |
1355  | fd   | number | 是    | 待获取文件状态的文件描述符。 |
1356
1357**返回值:**
1358
1359  | 类型                           | 说明         |
1360  | ---------------------------- | ---------- |
1361  | Promise&lt;[Stat](#stat)&gt; | Promise对象。返回表示文件状态的具体信息。 |
1362
1363**示例:**
1364
1365  ```ts
1366  import { BusinessError } from '@ohos.base';
1367  let filePath = pathDir + "/test.txt";
1368  let fd = fileio.openSync(filePath);
1369  fileio.fstat(fd).then((stat: fileio.Stat) => {
1370    console.info("fstat succeed, the size of file is " + stat.size);
1371  }).catch((err: BusinessError) => {
1372    console.info("fstat failed with error:" + err);
1373  });
1374  ```
1375
1376
1377## fileio.fstat<sup>7+</sup>
1378
1379fstat(fd: number, callback: AsyncCallback&lt;Stat&gt;): void
1380
1381基于文件描述符获取文件状态信息,使用callback异步回调。
1382
1383> **说明**:
1384>
1385> 从API version 9开始废弃,请使用[fs.stat](js-apis-file-fs.md#fsstat-1)替代。
1386
1387**系统能力**:SystemCapability.FileManagement.File.FileIO
1388
1389**参数:**
1390
1391  | 参数名      | 类型                                 | 必填   | 说明               |
1392  | -------- | ---------------------------------- | ---- | ---------------- |
1393  | fd       | number                             | 是    | 待获取文件状态的文件描述符。     |
1394  | callback | AsyncCallback&lt;[Stat](#stat)&gt; | 是    | 异步获取文件状态信息之后的回调。 |
1395
1396**示例:**
1397
1398  ```ts
1399  import { BusinessError } from '@ohos.base';
1400  let filePath = pathDir + "/test.txt";
1401  let fd = fileio.openSync(filePath);
1402  fileio.fstat(fd, (err: BusinessError) => {
1403    // do something
1404  });
1405  ```
1406
1407
1408## fileio.fstatSync<sup>7+</sup>
1409
1410fstatSync(fd: number): Stat
1411
1412以同步方法基于文件描述符获取文件状态信息。
1413
1414> **说明**:
1415>
1416> 从API version 9开始废弃,请使用[fs.statSync](js-apis-file-fs.md#fsstatsync)替代。
1417
1418**系统能力**:SystemCapability.FileManagement.File.FileIO
1419
1420**参数:**
1421
1422  | 参数名  | 类型     | 必填   | 说明           |
1423  | ---- | ------ | ---- | ------------ |
1424  | fd   | number | 是    | 待获取文件状态的文件描述符。 |
1425
1426**返回值:**
1427
1428  | 类型            | 说明         |
1429  | ------------- | ---------- |
1430  | [Stat](#stat) | 表示文件状态的具体信息。 |
1431
1432**示例:**
1433
1434  ```ts
1435  let filePath = pathDir + "/test.txt";
1436  let fd = fileio.openSync(filePath);
1437  let stat = fileio.fstatSync(fd);
1438  ```
1439
1440
1441## fileio.ftruncate<sup>7+</sup>
1442
1443ftruncate(fd: number, len?: number): Promise&lt;void&gt;
1444
1445基于文件描述符截断文件,使用Promise异步回调。
1446
1447> **说明**:
1448>
1449> 从API version 9开始废弃,请使用[fs.truncate](js-apis-file-fs.md#fstruncate)替代。
1450
1451**系统能力**:SystemCapability.FileManagement.File.FileIO
1452
1453**参数:**
1454
1455  | 参数名  | 类型     | 必填   | 说明               |
1456  | ---- | ------ | ---- | ---------------- |
1457  | fd   | number | 是    | 待截断文件的文件描述符。     |
1458  | len  | number | 否    | 文件截断后的长度,以字节为单位。 |
1459
1460**返回值:**
1461
1462  | 类型                  | 说明                           |
1463  | ------------------- | ---------------------------- |
1464  | Promise&lt;void&gt; | Promise对象。无返回值。|
1465
1466**示例:**
1467
1468  ```ts
1469  import { BusinessError } from '@ohos.base';
1470  let filePath = pathDir + "/test.txt";
1471  let fd = fileio.openSync(filePath);
1472  fileio.ftruncate(fd, 5).then(() => {
1473    console.info("truncate file succeed");
1474  }).catch((err: BusinessError) => {
1475    console.info("truncate file failed with error:" + err);
1476  });
1477  ```
1478
1479
1480## fileio.ftruncate<sup>7+</sup>
1481
1482ftruncate(fd: number, len?: number, callback: AsyncCallback&lt;void&gt;): void
1483
1484基于文件描述符截断文件,使用callback异步回调。
1485
1486> **说明**:
1487>
1488> 从API version 9开始废弃,请使用[fs.truncate](js-apis-file-fs.md#fstruncate-1)替代。
1489
1490**系统能力**:SystemCapability.FileManagement.File.FileIO
1491
1492**参数:**
1493
1494  | 参数名      | 类型                        | 必填   | 说明               |
1495  | -------- | ------------------------- | ---- | ---------------- |
1496  | fd       | number                    | 是    | 待截断文件的文件描述符。     |
1497  | len      | number                    | 否    | 文件截断后的长度,以字节为单位。 |
1498  | callback | AsyncCallback&lt;void&gt; | 是    | 回调函数,本调用无返回值。  |
1499
1500**示例:**
1501
1502  ```ts
1503  import { BusinessError } from '@ohos.base';
1504  let filePath = pathDir + "/test.txt";
1505  let fd = fileio.openSync(filePath);
1506  let len = 5;
1507  fileio.ftruncate(fd, 5, (err: BusinessError) => {
1508    // do something
1509  });
1510  ```
1511
1512
1513## fileio.ftruncateSync<sup>7+</sup>
1514
1515ftruncateSync(fd: number, len?: number): void
1516
1517以同步方法基于文件描述符截断文件。
1518
1519> **说明**:
1520>
1521> 从API version 9开始废弃,请使用[fs.truncateSync](js-apis-file-fs.md#fstruncatesync)替代。
1522
1523**系统能力**:SystemCapability.FileManagement.File.FileIO
1524
1525**参数:**
1526
1527  | 参数名  | 类型     | 必填   | 说明               |
1528  | ---- | ------ | ---- | ---------------- |
1529  | fd   | number | 是    | 待截断文件的文件描述符。     |
1530  | len  | number | 否    | 文件截断后的长度,以字节为单位。 |
1531
1532**示例:**
1533
1534  ```ts
1535  let filePath = pathDir + "/test.txt";
1536  let fd = fileio.openSync(filePath);
1537  let len = 5;
1538  fileio.ftruncateSync(fd, len);
1539  ```
1540
1541
1542## fileio.truncate<sup>7+</sup>
1543
1544truncate(path: string, len?: number): Promise&lt;void&gt;
1545
1546基于文件路径截断文件,使用Promise异步回调。
1547
1548> **说明**:
1549>
1550> 从API version 9开始废弃,请使用[fs.truncate](js-apis-file-fs.md#fstruncate)替代。
1551
1552**系统能力**:SystemCapability.FileManagement.File.FileIO
1553
1554**参数:**
1555
1556| 参数名 | 类型   | 必填 | 说明                             |
1557| ------ | ------ | ---- | -------------------------------- |
1558| path   | string | 是   | 待截断文件的应用沙箱路径。       |
1559| len    | number | 否   | 文件截断后的长度,以字节为单位。 |
1560
1561**返回值:**
1562
1563  | 类型                  | 说明                           |
1564  | ------------------- | ---------------------------- |
1565  | Promise&lt;void&gt; | Promise对象。无返回值。 |
1566
1567**示例:**
1568
1569  ```ts
1570  import { BusinessError } from '@ohos.base';
1571  let filePath = pathDir + "/test.txt";
1572  let len = 5;
1573  fileio.truncate(filePath, len).then(() => {
1574    console.info("truncate file succeed");
1575  }).catch((err: BusinessError) => {
1576    console.info("truncate file failed with error:" + err);
1577  });
1578  ```
1579
1580
1581## fileio.truncate<sup>7+</sup>
1582
1583truncate(path: string, len?: number, callback: AsyncCallback&lt;void&gt;): void
1584
1585基于文件路径截断文件,使用callback异步回调。
1586
1587> **说明**:
1588>
1589> 从API version 9开始废弃,请使用[fs.truncate](js-apis-file-fs.md#fstruncate-1)替代。
1590
1591**系统能力**:SystemCapability.FileManagement.File.FileIO
1592
1593**参数:**
1594
1595| 参数名   | 类型                      | 必填 | 说明                             |
1596| -------- | ------------------------- | ---- | -------------------------------- |
1597| path     | string                    | 是   | 待截断文件的应用沙箱路径。       |
1598| len      | number                    | 否   | 文件截断后的长度,以字节为单位。 |
1599| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数,本调用无返回值。   |
1600
1601**示例:**
1602
1603  ```ts
1604  import { BusinessError } from '@ohos.base';
1605  let filePath = pathDir + "/test.txt";
1606  let len = 5;
1607  fileio.truncate(filePath, len, (err: BusinessError) => {
1608    // do something
1609  });
1610  ```
1611
1612
1613## fileio.truncateSync<sup>7+</sup>
1614
1615truncateSync(path: string, len?: number): void
1616
1617以同步方法基于文件路径截断文件。
1618
1619> **说明**:
1620>
1621> 从API version 9开始废弃,请使用[fs.truncateSync](js-apis-file-fs.md#fstruncatesync)替代。
1622
1623**系统能力**:SystemCapability.FileManagement.File.FileIO
1624
1625**参数:**
1626
1627| 参数名 | 类型   | 必填 | 说明                             |
1628| ------ | ------ | ---- | -------------------------------- |
1629| path   | string | 是   | 待截断文件的应用沙箱路径。       |
1630| len    | number | 否   | 文件截断后的长度,以字节为单位。 |
1631
1632**示例:**
1633
1634  ```ts
1635  let filePath = pathDir + "/test.txt";
1636  let len = 5;
1637  fileio.truncateSync(filePath, len);
1638  ```
1639
1640
1641## fileio.readText<sup>7+</sup>
1642
1643readText(filePath: string, options?: { position?: number; length?: number; encoding?: string; }): Promise&lt;string&gt;
1644
1645基于文本方式读取文件(即直接读取文件的文本内容),使用Promise异步回调。
1646
1647> **说明**:
1648>
1649> 从API version 9开始废弃,请使用[fs.readText](js-apis-file-fs.md#fsreadtext)替代。
1650
1651**系统能力**:SystemCapability.FileManagement.File.FileIO
1652
1653**参数:**
1654
1655| 参数名   | 类型   | 必填 | 说明                                                         |
1656| -------- | ------ | ---- | ------------------------------------------------------------ |
1657| filePath | string | 是   | 待读取文件的应用沙箱路径。                                   |
1658| options  | Object | 否   | 支持如下选项:<br/>-&nbsp;position,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读取。<br/>-&nbsp;length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度减去偏移长度。<br/>-&nbsp;encoding,string类型,当数据是&nbsp;string&nbsp;类型时有效,表示数据的编码方式,默认&nbsp;'utf-8',仅支持&nbsp;'utf-8'。 |
1659
1660**返回值:**
1661
1662  | 类型                    | 说明         |
1663  | --------------------- | ---------- |
1664  | Promise&lt;string&gt; | Promise对象。返回读取文件的内容。 |
1665
1666**示例:**
1667
1668  ```ts
1669  import { BusinessError } from '@ohos.base';
1670  let filePath = pathDir + "/test.txt";
1671  fileio.readText(filePath).then((str: string) => {
1672    console.info("readText succeed:" + str);
1673  }).catch((err: BusinessError) => {
1674    console.info("readText failed with error:" + err);
1675  });
1676  ```
1677
1678
1679## fileio.readText<sup>7+</sup>
1680
1681readText(filePath: string, options: { position?: number; length?: number; encoding?: string; }, callback: AsyncCallback&lt;string&gt;): void
1682
1683基于文本方式读取文件(即直接读取文件的文本内容),使用callback异步回调。
1684
1685> **说明**:
1686>
1687> 从API version 9开始废弃,请使用[fs.readText](js-apis-file-fs.md#fsreadtext-1)替代。
1688
1689**系统能力**:SystemCapability.FileManagement.File.FileIO
1690
1691**参数:**
1692
1693| 参数名   | 类型                        | 必填 | 说明                                                         |
1694| -------- | --------------------------- | ---- | ------------------------------------------------------------ |
1695| filePath | string                      | 是   | 待读取文件的应用沙箱路径。                                   |
1696| options  | Object                      | 否   | 支持如下选项:<br/>-&nbsp;position,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读取。<br/>-&nbsp;length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度减去偏移长度。<br/>-&nbsp;encoding,string类型,表示数据的编码方式,默认&nbsp;'utf-8',仅支持&nbsp;'utf-8'。 |
1697| callback | AsyncCallback&lt;string&gt; | 是   | 回调函数,返回读取文件的内容。                         |
1698
1699**示例:**
1700
1701  ```ts
1702  import { BusinessError } from '@ohos.base';
1703  let filePath = pathDir + "/test.txt";
1704  class Option {
1705    length: number = 4096;
1706    position: number = 0;
1707    encoding: string = 'utf-8';
1708  }
1709  let option = new Option();
1710  option.position = 1;
1711  option.encoding = 'utf-8';
1712  fileio.readText(filePath, option, (err: BusinessError, str: string) => {
1713    // do something
1714  });
1715  ```
1716
1717
1718## fileio.readTextSync<sup>7+</sup>
1719
1720readTextSync(filePath: string, options?: { position?: number; length?: number; encoding?: string; }): string
1721
1722以同步方法基于文本方式读取文件(即直接读取文件的文本内容)。
1723
1724> **说明**:
1725>
1726> 从API version 9开始废弃,请使用[fs.readTextSync](js-apis-file-fs.md#fsreadtextsync)替代。
1727
1728**系统能力**:SystemCapability.FileManagement.File.FileIO
1729
1730**参数:**
1731
1732| 参数名   | 类型   | 必填 | 说明                                                         |
1733| -------- | ------ | ---- | ------------------------------------------------------------ |
1734| filePath | string | 是   | 待读取文件的应用沙箱路径。                                   |
1735| options  | Object | 否   | 支持如下选项:<br/>-&nbsp;position,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读取。<br/>-&nbsp;length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度减去偏移长度。<br/>-&nbsp;encoding,string类型,当数据是&nbsp;string&nbsp;类型时有效,表示数据的编码方式,默认&nbsp;'utf-8',仅支持&nbsp;'utf-8'。 |
1736
1737**返回值:**
1738
1739  | 类型   | 说明                 |
1740  | ------ | -------------------- |
1741  | string | 返回读取文件的内容。 |
1742
1743**示例:**
1744
1745  ```ts
1746  let filePath = pathDir + "/test.txt";
1747  class Option {
1748    length: number = 4096;
1749    position: number = 0;
1750    encoding: string = 'utf-8';
1751  }
1752  let option = new Option();
1753  option.position = 1;
1754  option.length = 3;
1755  let str = fileio.readTextSync(filePath, option);
1756  ```
1757
1758
1759## fileio.lstat<sup>7+</sup>
1760
1761lstat(path: string): Promise&lt;Stat&gt;
1762
1763获取链接信息,使用Promise异步回调。
1764
1765> **说明**:
1766>
1767> 从API version 9开始废弃,请使用[fs.lstat](js-apis-file-fs.md#fslstat)替代。
1768
1769**系统能力**:SystemCapability.FileManagement.File.FileIO
1770
1771**参数:**
1772
1773| 参数名 | 类型   | 必填 | 说明                                   |
1774| ------ | ------ | ---- | -------------------------------------- |
1775| path   | string | 是   | 目标文件的应用沙箱路径。 |
1776
1777**返回值:**
1778
1779  | 类型                           | 说明         |
1780  | ---------------------------- | ---------- |
1781  | Promise&lt;[Stat](#stat)&gt; | promise对象,返回文件对象,表示文件的具体信息,详情见stat。 |
1782
1783**示例:**
1784
1785  ```ts
1786  import { BusinessError } from '@ohos.base';
1787  let filePath = pathDir + "/test.txt";
1788  fileio.lstat(filePath).then((stat: fileio.Stat) => {
1789    console.info("get link status succeed, the size of file is" + stat.size);
1790  }).catch((err: BusinessError) => {
1791    console.info("get link status failed with error:" + err);
1792  });
1793  ```
1794
1795
1796## fileio.lstat<sup>7+</sup>
1797
1798lstat(path: string, callback: AsyncCallback&lt;Stat&gt;): void
1799
1800获取链接信息,使用callback异步回调。
1801
1802> **说明**:
1803>
1804> 从API version 9开始废弃,请使用[fs.lstat](js-apis-file-fs.md#fslstat-1)替代。
1805
1806**系统能力**:SystemCapability.FileManagement.File.FileIO
1807
1808**参数:**
1809
1810| 参数名   | 类型                               | 必填 | 说明                                   |
1811| -------- | ---------------------------------- | ---- | -------------------------------------- |
1812| path     | string                             | 是   | 目标文件的应用沙箱路径。 |
1813| callback | AsyncCallback&lt;[Stat](#stat)&gt; | 是   | 回调函数,返回文件的具体信息。       |
1814
1815**示例:**
1816
1817  ```ts
1818  import { BusinessError } from '@ohos.base';
1819  let filePath = pathDir + "/test.txt";
1820  fileio.lstat(filePath, (err: BusinessError, stat: fileio.Stat) => {
1821    // do something
1822  });
1823  ```
1824
1825
1826## fileio.lstatSync<sup>7+</sup>
1827
1828lstatSync(path: string): Stat
1829
1830以同步方法获取链接信息。
1831
1832> **说明**:
1833>
1834> 从API version 9开始废弃,请使用[fs.lstatSync](js-apis-file-fs.md#fslstatsync)替代。
1835
1836**系统能力**:SystemCapability.FileManagement.File.FileIO
1837
1838**参数:**
1839
1840| 参数名 | 类型   | 必填 | 说明                                   |
1841| ------ | ------ | ---- | -------------------------------------- |
1842| path   | string | 是   | 目标文件的应用沙箱路径。 |
1843
1844**返回值:**
1845
1846  | 类型            | 说明         |
1847  | ------------- | ---------- |
1848  | [Stat](#stat) | 表示文件的具体信息。 |
1849
1850**示例:**
1851
1852  ```ts
1853  let filePath = pathDir + "/test.txt";
1854  let stat = fileio.lstatSync(filePath);
1855  ```
1856
1857
1858## fileio.rename<sup>7+</sup>
1859
1860rename(oldPath: string, newPath: string): Promise&lt;void&gt;
1861
1862重命名文件,使用Promise异步回调。
1863
1864> **说明**:
1865>
1866> 从API version 9开始废弃,请使用[fs.rename](js-apis-file-fs.md#fsrename)替代。
1867
1868**系统能力**:SystemCapability.FileManagement.File.FileIO
1869
1870**参数:**
1871
1872| 参数名  | 类型   | 必填 | 说明                         |
1873| ------- | ------ | ---- | ---------------------------- |
1874| oldPath | string | 是   | 目标文件的当前应用沙箱路径。 |
1875| newPath | string | 是   | 目标文件的新应用沙箱路径。   |
1876
1877**返回值:**
1878
1879  | 类型                  | 说明                           |
1880  | ------------------- | ---------------------------- |
1881  | Promise&lt;void&gt; | Promise对象。无返回值。 |
1882
1883**示例:**
1884
1885  ```ts
1886  import { BusinessError } from '@ohos.base';
1887  let srcFile = pathDir + "/test.txt";
1888  let dstFile = pathDir + '/new.txt';
1889  fileio.rename(srcFile, dstFile).then(() => {
1890    console.info("rename succeed");
1891  }).catch((err: BusinessError) => {
1892    console.info("rename failed with error:" + err);
1893  });
1894  ```
1895
1896
1897## fileio.rename<sup>7+</sup>
1898
1899rename(oldPath: string, newPath: string, callback: AsyncCallback&lt;void&gt;): void
1900
1901重命名文件,使用callback异步回调。
1902
1903> **说明**:
1904>
1905> 从API version 9开始废弃,请使用[fs.rename](js-apis-file-fs.md#fsrename-1)替代。
1906
1907**系统能力**:SystemCapability.FileManagement.File.FileIO
1908
1909**参数:**
1910
1911| 参数名   | 类型                      | 必填 | 说明                         |
1912| -------- | ------------------------- | ---- | ---------------------------- |
1913| oldPath  | string                    | 是   | 目标文件的当前应用沙箱路径。 |
1914| newPath  | string                    | 是   | 目标文件的新应用沙箱路径。   |
1915| callback | AsyncCallback&lt;void&gt; | 是   | 异步重命名文件之后的回调。   |
1916
1917**示例:**
1918
1919  ```ts
1920  import { BusinessError } from '@ohos.base';
1921  let srcFile = pathDir + "/test.txt";
1922  let dstFile = pathDir + '/new.txt';
1923  fileio.rename(srcFile, dstFile, (err: BusinessError) => {
1924  });
1925  ```
1926
1927## fileio.renameSync<sup>7+</sup>
1928
1929renameSync(oldPath: string, newPath: string): void
1930
1931以同步方法重命名文件。
1932
1933> **说明**:
1934>
1935> 从API version 9开始废弃,请使用[fs.renameSync](js-apis-file-fs.md#fsrenamesync)替代。
1936
1937**系统能力**:SystemCapability.FileManagement.File.FileIO
1938
1939**参数:**
1940
1941| 参数名  | 类型   | 必填 | 说明                         |
1942| ------- | ------ | ---- | ---------------------------- |
1943| oldPath | string | 是   | 目标文件的当前应用沙箱路径。 |
1944| newPath | string | 是   | 目标文件的新应用沙箱路径。   |
1945
1946**示例:**
1947
1948  ```ts
1949  let srcFile = pathDir + "/test.txt";
1950  let dstFile = pathDir + '/new.txt';
1951  fileio.renameSync(srcFile, dstFile);
1952  ```
1953
1954
1955## fileio.fsync<sup>7+</sup>
1956
1957fsync(fd: number): Promise&lt;void&gt;
1958
1959同步文件数据,使用Promise异步回调。
1960
1961> **说明**:
1962>
1963> 从API version 9开始废弃,请使用[fs.fsync](js-apis-file-fs.md#fsfsync)替代。
1964
1965**系统能力**:SystemCapability.FileManagement.File.FileIO
1966
1967**参数:**
1968
1969  | 参数名  | 类型     | 必填   | 说明           |
1970  | ---- | ------ | ---- | ------------ |
1971  | fd   | number | 是    | 待同步文件的文件描述符。 |
1972
1973**返回值:**
1974
1975  | 类型                  | 说明                           |
1976  | ------------------- | ---------------------------- |
1977  | Promise&lt;void&gt; | Promise对象。无返回值。 |
1978
1979**示例:**
1980
1981  ```ts
1982  import { BusinessError } from '@ohos.base';
1983  let filePath = pathDir + "/test.txt";
1984  let fd = fileio.openSync(filePath);
1985  fileio.fsync(fd).then(() => {
1986    console.info("sync data succeed");
1987  }).catch((err: BusinessError) => {
1988    console.info("sync data failed with error:" + err);
1989  });
1990  ```
1991
1992
1993## fileio.fsync<sup>7+</sup>
1994
1995fsync(fd: number, callback: AsyncCallback&lt;void&gt;): void
1996
1997同步文件数据,使用callback异步回调。
1998
1999> **说明**:
2000>
2001> 从API version 9开始废弃,请使用[fs.fsync](js-apis-file-fs.md#fsfsync-1)替代。
2002
2003**系统能力**:SystemCapability.FileManagement.File.FileIO
2004
2005**参数:**
2006
2007  | 参数名      | 类型                        | 必填   | 说明              |
2008  | -------- | ------------------------- | ---- | --------------- |
2009  | fd       | number                    | 是    | 待同步文件的文件描述符。    |
2010  | Callback | AsyncCallback&lt;void&gt; | 是    | 异步将文件数据同步之后的回调。 |
2011
2012**示例:**
2013
2014  ```ts
2015  import { BusinessError } from '@ohos.base';
2016  let filePath = pathDir + "/test.txt";
2017  let fd = fileio.openSync(filePath);
2018  fileio.fsync(fd, (err: BusinessError) => {
2019    // do something
2020  });
2021  ```
2022
2023
2024## fileio.fsyncSync<sup>7+</sup>
2025
2026fsyncSync(fd: number): void
2027
2028以同步方法同步文件数据。
2029
2030> **说明**:
2031>
2032> 从API version 9开始废弃,请使用[fs.fsyncSync](js-apis-file-fs.md#fsfsyncsync)替代。
2033
2034**系统能力**:SystemCapability.FileManagement.File.FileIO
2035
2036**参数:**
2037
2038  | 参数名  | 类型     | 必填   | 说明           |
2039  | ---- | ------ | ---- | ------------ |
2040  | fd   | number | 是    | 待同步文件的文件描述符。 |
2041
2042**示例:**
2043
2044  ```ts
2045  let filePath = pathDir + "/test.txt";
2046  let fd = fileio.openSync(filePath);
2047  fileio.fsyncSync(fd);
2048  ```
2049
2050
2051## fileio.fdatasync<sup>7+</sup>
2052
2053fdatasync(fd: number): Promise&lt;void&gt;
2054
2055实现文件内容数据同步,使用Promise异步回调。
2056
2057> **说明**:
2058>
2059> 从API version 9开始废弃,请使用[fs.fdatasync](js-apis-file-fs.md#fsfdatasync)替代。
2060
2061**系统能力**:SystemCapability.FileManagement.File.FileIO
2062
2063**参数:**
2064
2065  | 参数名  | 类型     | 必填   | 说明           |
2066  | ---- | ------ | ---- | ------------ |
2067  | fd   | number | 是    | 待同步文件的文件描述符。 |
2068
2069**返回值:**
2070
2071  | 类型                  | 说明                           |
2072  | ------------------- | ---------------------------- |
2073  | Promise&lt;void&gt; | Promise对象。无返回值。 |
2074
2075**示例:**
2076
2077  ```ts
2078  import { BusinessError } from '@ohos.base';
2079  let filePath = pathDir + "/test.txt";
2080  let fd = fileio.openSync(filePath);
2081  fileio.fdatasync(fd).then(() => {
2082    console.info("sync data succeed");
2083  }).catch((err: BusinessError) => {
2084    console.info("sync data failed with error:" + err);
2085  });
2086  ```
2087
2088
2089## fileio.fdatasync<sup>7+</sup>
2090
2091fdatasync(fd: number, callback: AsyncCallback&lt;void&gt;): void
2092
2093实现文件内容数据同步,使用callback异步回调。
2094
2095> **说明**:
2096>
2097> 从API version 9开始废弃,请使用[fs.fdatasync](js-apis-file-fs.md#fsfdatasync-1)替代。
2098
2099**系统能力**:SystemCapability.FileManagement.File.FileIO
2100
2101**参数:**
2102
2103  | 参数名      | 类型                              | 必填   | 说明                |
2104  | -------- | ------------------------------- | ---- | ----------------- |
2105  | fd       | number                          | 是    | 待同步文件的文件描述符。      |
2106  | callback | AsyncCallback&lt;void&gt; | 是    | 异步将文件内容数据同步之后的回调。 |
2107
2108**示例:**
2109
2110  ```ts
2111  import { BusinessError } from '@ohos.base';
2112  let filePath = pathDir + "/test.txt";
2113  let fd = fileio.openSync(filePath);
2114  fileio.fdatasync (fd, (err: BusinessError) => {
2115    // do something
2116  });
2117  ```
2118
2119
2120## fileio.fdatasyncSync<sup>7+</sup>
2121
2122fdatasyncSync(fd: number): void
2123
2124以同步方法实现文件内容数据同步。
2125
2126> **说明**:
2127>
2128> 从API version 9开始废弃,请使用[fs.fdatasyncSync](js-apis-file-fs.md#fsfdatasyncsync)替代。
2129
2130**系统能力**:SystemCapability.FileManagement.File.FileIO
2131
2132**参数:**
2133
2134  | 参数名  | 类型     | 必填   | 说明           |
2135  | ---- | ------ | ---- | ------------ |
2136  | fd   | number | 是    | 待同步文件的文件描述符。 |
2137
2138**示例:**
2139
2140  ```ts
2141  let filePath = pathDir + "/test.txt";
2142  let fd = fileio.openSync(filePath);
2143  let stat = fileio.fdatasyncSync(fd);
2144  ```
2145
2146
2147## fileio.symlink<sup>7+</sup>
2148
2149symlink(target: string, srcPath: string): Promise&lt;void&gt;
2150
2151基于文件路径创建符号链接,使用Promise异步回调。
2152
2153> **说明**:
2154>
2155> 从API version 9开始废弃,请使用[fs.symlink](js-apis-file-fs.md#fssymlink)替代。
2156
2157**系统能力**:SystemCapability.FileManagement.File.FileIO
2158
2159**参数:**
2160
2161| 参数名  | 类型   | 必填 | 说明                         |
2162| ------- | ------ | ---- | ---------------------------- |
2163| target  | string | 是   | 目标文件的应用沙箱路径。     |
2164| srcPath | string | 是   | 符号链接文件的应用沙箱路径。 |
2165
2166**返回值:**
2167
2168  | 类型                  | 说明                           |
2169  | ------------------- | ---------------------------- |
2170  | Promise&lt;void&gt; | Promise对象。无返回值。 |
2171
2172**示例:**
2173
2174  ```ts
2175  import { BusinessError } from '@ohos.base';
2176  let srcFile = pathDir + "/test.txt";
2177  let dstFile = pathDir + '/test';
2178  fileio.symlink(srcFile, dstFile).then(() => {
2179    console.info("symlink succeed");
2180  }).catch((err: BusinessError) => {
2181    console.info("symlink failed with error:" + err);
2182  });
2183  ```
2184
2185
2186## fileio.symlink<sup>7+</sup>
2187
2188symlink(target: string, srcPath: string, callback: AsyncCallback&lt;void&gt;): void
2189
2190基于文件路径创建符号链接,使用callback异步回调。
2191
2192> **说明**:
2193>
2194> 从API version 9开始废弃,请使用[fs.symlink](js-apis-file-fs.md#fssymlink-1)替代。
2195
2196**系统能力**:SystemCapability.FileManagement.File.FileIO
2197
2198**参数:**
2199
2200| 参数名   | 类型                      | 必填 | 说明                             |
2201| -------- | ------------------------- | ---- | -------------------------------- |
2202| target   | string                    | 是   | 目标文件的应用沙箱路径。         |
2203| srcPath  | string                    | 是   | 符号链接文件的应用沙箱路径。     |
2204| callback | AsyncCallback&lt;void&gt; | 是   | 异步创建符号链接信息之后的回调。 |
2205
2206**示例:**
2207
2208  ```ts
2209  import { BusinessError } from '@ohos.base';
2210  let srcFile = pathDir + "/test.txt";
2211  let dstFile = pathDir + '/test';
2212  fileio.symlink(srcFile, dstFile, (err: BusinessError) => {
2213    // do something
2214  });
2215  ```
2216
2217
2218## fileio.symlinkSync<sup>7+</sup>
2219
2220symlinkSync(target: string, srcPath: string): void
2221
2222以同步的方法基于文件路径创建符号链接。
2223
2224> **说明**:
2225>
2226> 从API version 9开始废弃,请使用[fs.symlinkSync](js-apis-file-fs.md#fssymlinksync)替代。
2227
2228**系统能力**:SystemCapability.FileManagement.File.FileIO
2229
2230**参数:**
2231
2232| 参数名  | 类型   | 必填 | 说明                         |
2233| ------- | ------ | ---- | ---------------------------- |
2234| target  | string | 是   | 目标文件的应用沙箱路径。     |
2235| srcPath | string | 是   | 符号链接文件的应用沙箱路径。 |
2236
2237**示例:**
2238
2239  ```ts
2240  let srcFile = pathDir + "/test.txt";
2241  let dstFile = pathDir + '/test';
2242  fileio.symlinkSync(srcFile, dstFile);
2243  ```
2244
2245
2246## fileio.chown<sup>7+</sup>
2247
2248chown(path: string, uid: number, gid: number): Promise&lt;void&gt;
2249
2250基于文件路径改变文件所有者,使用Promise异步回调。
2251
2252> **说明**:
2253>
2254> 从API version 9开始废弃。
2255
2256**系统能力**:SystemCapability.FileManagement.File.FileIO
2257
2258**参数:**
2259
2260| 参数名 | 类型   | 必填 | 说明                       |
2261| ------ | ------ | ---- | -------------------------- |
2262| path   | string | 是   | 待改变文件的应用沙箱路径。 |
2263| uid    | number | 是   | 新的UID(UserID)。        |
2264| gid    | number | 是   | 新的GID(GroupID)。       |
2265
2266**返回值:**
2267
2268  | 类型                  | 说明                           |
2269  | ------------------- | ---------------------------- |
2270  | Promise&lt;void&gt; | Promise对象。无返回值。 |
2271
2272**示例:**
2273
2274  ```ts
2275  import { BusinessError } from '@ohos.base';
2276  let filePath = pathDir + "/test.txt";
2277  let stat = fileio.statSync(filePath);
2278  fileio.chown(filePath, stat.uid, stat.gid).then(() => {
2279    console.info("chown succeed");
2280  }).catch((err: BusinessError) => {
2281    console.info("chown failed with error:" + err);
2282  });
2283  ```
2284
2285
2286## fileio.chown<sup>7+</sup>
2287
2288chown(path: string, uid: number, gid: number, callback: AsyncCallback&lt;void&gt;): void
2289
2290基于文件路径改变文件所有者,使用callback异步回调。
2291
2292> **说明**:
2293>
2294> 从API version 9开始废弃。
2295
2296**系统能力**:SystemCapability.FileManagement.File.FileIO
2297
2298**参数:**
2299
2300| 参数名   | 类型                      | 必填 | 说明                           |
2301| -------- | ------------------------- | ---- | ------------------------------ |
2302| path     | string                    | 是   | 待改变文件的应用沙箱路径。     |
2303| uid      | number                    | 是   | 新的UID。                      |
2304| gid      | number                    | 是   | 新的GID。                      |
2305| callback | AsyncCallback&lt;void&gt; | 是   | 异步改变文件所有者之后的回调。 |
2306
2307**示例:**
2308
2309  ```ts
2310  import { BusinessError } from '@ohos.base';
2311  let filePath = pathDir + "/test.txt";
2312  let stat = fileio.statSync(filePath)
2313  fileio.chown(filePath, stat.uid, stat.gid, (err: BusinessError) => {
2314    // do something
2315  });
2316  ```
2317
2318## fileio.chownSync<sup>7+</sup>
2319
2320chownSync(path: string, uid: number, gid: number): void
2321
2322以同步的方法基于文件路径改变文件所有者。
2323
2324> **说明**:
2325>
2326> 从API version 9开始废弃。
2327
2328**系统能力**:SystemCapability.FileManagement.File.FileIO
2329
2330**参数:**
2331
2332| 参数名 | 类型   | 必填 | 说明                       |
2333| ------ | ------ | ---- | -------------------------- |
2334| path   | string | 是   | 待改变文件的应用沙箱路径。 |
2335| uid    | number | 是   | 新的UID。                  |
2336| gid    | number | 是   | 新的GID。                  |
2337
2338**示例:**
2339
2340  ```ts
2341  let filePath = pathDir + "/test.txt";
2342  let stat = fileio.statSync(filePath)
2343  fileio.chownSync(filePath, stat.uid, stat.gid);
2344  ```
2345
2346
2347## fileio.mkdtemp<sup>7+</sup>
2348
2349mkdtemp(prefix: string): Promise&lt;string&gt;
2350
2351创建临时目录,使用Promise异步回调。
2352
2353> **说明**:
2354>
2355> 从API version 9开始废弃,请使用[fs.mkdtemp](js-apis-file-fs.md#fsmkdtemp)替代。
2356
2357**系统能力**:SystemCapability.FileManagement.File.FileIO
2358
2359**参数:**
2360
2361  | 参数名    | 类型     | 必填   | 说明                          |
2362  | ------ | ------ | ---- | --------------------------- |
2363  | prefix | string | 是    | 用随机产生的字符串替换以“XXXXXX”结尾目录路径。 |
2364
2365**返回值:**
2366
2367  | 类型                   | 说明         |
2368  | --------------------- | ---------- |
2369  | Promise&lt;string&gt; | Promise对象。返回生成的唯一目录路径。 |
2370
2371**示例:**
2372
2373  ```ts
2374  import { BusinessError } from '@ohos.base';
2375  fileio.mkdtemp(pathDir + "/XXXXXX").then((pathDir: string) => {
2376    console.info("mkdtemp succeed:" + pathDir);
2377  }).catch((err: BusinessError) => {
2378    console.info("mkdtemp failed with error:" + err);
2379  });
2380  ```
2381
2382
2383## fileio.mkdtemp<sup>7+</sup>
2384
2385mkdtemp(prefix: string, callback: AsyncCallback&lt;string&gt;): void
2386
2387创建临时目录,使用callback异步回调。
2388
2389> **说明**:
2390>
2391> 从API version 9开始废弃,请使用[fs.mkdtemp](js-apis-file-fs.md#fsmkdtemp-1)替代。
2392
2393**系统能力**:SystemCapability.FileManagement.File.FileIO
2394
2395**参数:**
2396
2397  | 参数名      | 类型                          | 必填   | 说明                          |
2398  | -------- | --------------------------- | ---- | --------------------------- |
2399  | prefix   | string                      | 是    | 用随机产生的字符串替换以“XXXXXX”结尾目录路径。 |
2400  | callback | AsyncCallback&lt;string&gt; | 是    | 异步创建临时目录之后的回调。              |
2401
2402**示例:**
2403
2404  ```ts
2405  import { BusinessError } from '@ohos.base';
2406  fileio.mkdtemp(pathDir + "/XXXXXX", (err: BusinessError, res: string) => {
2407    // do something
2408  });
2409  ```
2410
2411
2412## fileio.mkdtempSync<sup>7+</sup>
2413
2414mkdtempSync(prefix: string): string
2415
2416以同步的方法创建临时目录。
2417
2418> **说明**:
2419>
2420> 从API version 9开始废弃,请使用[fs.mkdtempSync](js-apis-file-fs.md#fsmkdtempsync)替代。
2421
2422**系统能力**:SystemCapability.FileManagement.File.FileIO
2423
2424**参数:**
2425
2426  | 参数名    | 类型     | 必填   | 说明                          |
2427  | ------ | ------ | ---- | --------------------------- |
2428  | prefix | string | 是    | 用随机产生的字符串替换以“XXXXXX”结尾目录路径。 |
2429
2430**返回值:**
2431
2432  | 类型    | 说明         |
2433  | ------ | ---------- |
2434  | string | 产生的唯一目录路径。 |
2435
2436**示例:**
2437
2438  ```ts
2439  let res = fileio.mkdtempSync(pathDir + "/XXXXXX");
2440  ```
2441
2442
2443## fileio.fchmod<sup>7+</sup>
2444
2445fchmod(fd: number, mode: number): Promise&lt;void&gt;
2446
2447基于文件描述符改变文件权限,使用Promise异步回调。
2448
2449> **说明**:
2450>
2451> 从API version 9开始废弃。
2452
2453**系统能力**:SystemCapability.FileManagement.File.FileIO
2454
2455**参数:**
2456
2457  | 参数名  | 类型     | 必填   | 说明                                       |
2458  | ---- | ------ | ---- | ---------------------------------------- |
2459  | fd   | number | 是    | 待改变文件的文件描述符。                             |
2460  | mode | number | 是    | 若创建文件,则指定文件的权限,可给定如下权限,以按位或的方式追加权限。<br/>-&nbsp;0o700:所有者具有读、写及可执行权限。<br/>-&nbsp;0o400:所有者具有读权限。<br/>-&nbsp;0o200:所有者具有写权限。<br/>-&nbsp;0o100:所有者具有可执行权限。<br/>-&nbsp;0o070:所有用户组具有读、写及可执行权限。<br/>-&nbsp;0o040:所有用户组具有读权限。<br/>-&nbsp;0o020:所有用户组具有写权限。<br/>-&nbsp;0o010:所有用户组具有可执行权限。<br/>-&nbsp;0o007:其余用户具有读、写及可执行权限。<br/>-&nbsp;0o004:其余用户具有读权限。<br/>-&nbsp;0o002:其余用户具有写权限。<br/>-&nbsp;0o001:其余用户具有可执行权限。 |
2461
2462**返回值:**
2463
2464  | 类型                 | 说明                           |
2465  | ------------------- | ---------------------------- |
2466  | Promise&lt;void&gt; | Promise对象。无返回值。 |
2467
2468**示例:**
2469
2470  ```ts
2471  import { BusinessError } from '@ohos.base';
2472  let filePath = pathDir + "/test.txt";
2473  let fd = fileio.openSync(filePath);
2474  let mode: number = 0o700;
2475  fileio.fchmod(fd, mode).then(() => {
2476    console.info("chmod succeed");
2477  }).catch((err: BusinessError) => {
2478    console.info("chmod failed with error:" + err);
2479  });
2480  ```
2481
2482
2483## fileio.fchmod<sup>7+</sup>
2484
2485fchmod(fd: number, mode: number, callback: AsyncCallback&lt;void&gt;): void
2486
2487基于文件描述符改变文件权限,使用callback异步回调。
2488
2489> **说明**:
2490>
2491> 从API version 9开始废弃。
2492
2493**系统能力**:SystemCapability.FileManagement.File.FileIO
2494
2495**参数:**
2496
2497  | 参数名      | 类型                              | 必填   | 说明                                       |
2498  | -------- | ------------------------------- | ---- | ---------------------------------------- |
2499  | fd       | number                          | 是    | 待改变文件的文件描述符。                             |
2500  | mode     | number                          | 是    | 若创建文件,则指定文件的权限,可给定如下权限,以按位或的方式追加权限。<br/>-&nbsp;0o700:所有者具有读、写及可执行权限。<br/>-&nbsp;0o400:所有者具有读权限。<br/>-&nbsp;0o200:所有者具有写权限。<br/>-&nbsp;0o100:所有者具有可执行权限。<br/>-&nbsp;0o070:所有用户组具有读、写及可执行权限。<br/>-&nbsp;0o040:所有用户组具有读权限。<br/>-&nbsp;0o020:所有用户组具有写权限。<br/>-&nbsp;0o010:所有用户组具有可执行权限。<br/>-&nbsp;0o007:其余用户具有读、写及可执行权限。<br/>-&nbsp;0o004:其余用户具有读权限。<br/>-&nbsp;0o002:其余用户具有写权限。<br/>-&nbsp;0o001:其余用户具有可执行权限。 |
2501  | callback | AsyncCallback&lt;void&gt; | 是    | 异步改变文件权限之后的回调。                           |
2502
2503**示例:**
2504
2505  ```ts
2506  import { BusinessError } from '@ohos.base';
2507  let filePath = pathDir + "/test.txt";
2508  let fd = fileio.openSync(filePath);
2509  let mode: number = 0o700;
2510  fileio.fchmod(fd, mode, (err: BusinessError) => {
2511    // do something
2512  });
2513  ```
2514
2515
2516## fileio.fchmodSync<sup>7+</sup>
2517
2518fchmodSync(fd: number, mode: number): void
2519
2520以同步方法基于文件描述符改变文件权限。
2521
2522> **说明**:
2523>
2524> 从API version 9开始废弃。
2525
2526**系统能力**:SystemCapability.FileManagement.File.FileIO
2527
2528**参数:**
2529
2530  | 参数名  | 类型     | 必填   | 说明                                       |
2531  | ---- | ------ | ---- | ---------------------------------------- |
2532  | fd   | number | 是    | 待改变文件的文件描述符。                             |
2533  | mode | number | 是    | 若创建文件,则指定文件的权限,可给定如下权限,以按位或的方式追加权限。<br/>-&nbsp;0o700:所有者具有读、写及可执行权限。<br/>-&nbsp;0o400:所有者具有读权限。<br/>-&nbsp;0o200:所有者具有写权限。<br/>-&nbsp;0o100:所有者具有可执行权限。<br/>-&nbsp;0o070:所有用户组具有读、写及可执行权限。<br/>-&nbsp;0o040:所有用户组具有读权限。<br/>-&nbsp;0o020:所有用户组具有写权限。<br/>-&nbsp;0o010:所有用户组具有可执行权限。<br/>-&nbsp;0o007:其余用户具有读、写及可执行权限。<br/>-&nbsp;0o004:其余用户具有读权限。<br/>-&nbsp;0o002:其余用户具有写权限。<br/>-&nbsp;0o001:其余用户具有可执行权限。 |
2534
2535**示例:**
2536
2537  ```ts
2538  let filePath = pathDir + "/test.txt";
2539  let fd = fileio.openSync(filePath);
2540  let mode: number = 0o700;
2541  fileio.fchmodSync(fd, mode);
2542  ```
2543
2544
2545## fileio.createStream<sup>7+</sup>
2546
2547createStream(path: string, mode: string): Promise&lt;Stream&gt;
2548
2549基于文件路径打开文件流,使用Promise异步回调。
2550
2551> **说明**:
2552>
2553> 从API version 9开始废弃,请使用[fs.createStream](js-apis-file-fs.md#fscreatestream)替代。
2554
2555**系统能力**:SystemCapability.FileManagement.File.FileIO
2556
2557**参数:**
2558
2559| 参数名 | 类型   | 必填 | 说明                                                         |
2560| ------ | ------ | ---- | ------------------------------------------------------------ |
2561| path   | string | 是   | 待打开文件的应用沙箱路径。                                   |
2562| mode   | string | 是   | -&nbsp;r:打开只读文件,该文件必须存在。<br/>-&nbsp;r+:打开可读写的文件,该文件必须存在。<br/>-&nbsp;w:打开只写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。<br/>-&nbsp;w+:打开可读写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。<br/>-&nbsp;a:以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。<br/>-&nbsp;a+:以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 |
2563
2564**返回值:**
2565
2566  | 类型                                | 说明        |
2567  | --------------------------------- | --------- |
2568  | Promise&lt;[Stream](#stream)&gt; | Promise对象。返回文件流的结果。 |
2569
2570**示例:**
2571
2572  ```ts
2573  import { BusinessError } from '@ohos.base';
2574  let filePath = pathDir + "/test.txt";
2575  fileio.createStream(filePath, "r+").then((stream: fileio.Stream) => {
2576    console.info("createStream succeed");
2577  }).catch((err: BusinessError) => {
2578    console.info("createStream failed with error:" + err);
2579  });
2580  ```
2581
2582
2583## fileio.createStream<sup>7+</sup>
2584
2585createStream(path: string, mode: string, callback: AsyncCallback&lt;Stream&gt;): void
2586
2587基于文件路径打开文件流,使用callback异步回调。
2588
2589> **说明**:
2590>
2591> 从API version 9开始废弃,请使用[fs.createStream](js-apis-file-fs.md#fscreatestream-1)替代。
2592
2593**系统能力**:SystemCapability.FileManagement.File.FileIO
2594
2595**参数:**
2596
2597| 参数名   | 类型                                    | 必填 | 说明                                                         |
2598| -------- | --------------------------------------- | ---- | ------------------------------------------------------------ |
2599| path     | string                                  | 是   | 待打开文件的应用沙箱路径。                                   |
2600| mode     | string                                  | 是   | -&nbsp;r:打开只读文件,该文件必须存在。<br/>-&nbsp;r+:打开可读写的文件,该文件必须存在。<br/>-&nbsp;w:打开只写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。<br/>-&nbsp;w+:打开可读写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。<br/>-&nbsp;a:以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。<br/>-&nbsp;a+:以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 |
2601| callback | AsyncCallback&lt;[Stream](#stream)&gt; | 是   | 异步打开文件流之后的回调。                                   |
2602
2603**示例:**
2604
2605  ```ts
2606  import { BusinessError } from '@ohos.base';
2607  let filePath = pathDir + "/test.txt";
2608  fileio.createStream(filePath, "r+", (err: BusinessError, stream: fileio.Stream) => {
2609    // do something
2610  });
2611  ```
2612
2613
2614## fileio.createStreamSync<sup>7+</sup>
2615
2616createStreamSync(path: string, mode: string): Stream
2617
2618以同步方法基于文件路径打开文件流。
2619
2620> **说明**:
2621>
2622> 从API version 9开始废弃,请使用[fs.createStreamSync](js-apis-file-fs.md#fscreatestreamsync)替代。
2623
2624**系统能力**:SystemCapability.FileManagement.File.FileIO
2625
2626**参数:**
2627
2628| 参数名 | 类型   | 必填 | 说明                                                         |
2629| ------ | ------ | ---- | ------------------------------------------------------------ |
2630| path   | string | 是   | 待打开文件的应用沙箱路径。                                   |
2631| mode   | string | 是   | -&nbsp;r:打开只读文件,该文件必须存在。<br/>-&nbsp;r+:打开可读写的文件,该文件必须存在。<br/>-&nbsp;w:打开只写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。<br/>-&nbsp;w+:打开可读写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。<br/>-&nbsp;a:以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。<br/>-&nbsp;a+:以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 |
2632
2633**返回值:**
2634
2635  | 类型                | 说明        |
2636  | ------------------ | --------- |
2637  | [Stream](#stream) | 返回文件流的结果。 |
2638
2639**示例:**
2640
2641  ```ts
2642  let filePath = pathDir + "/test.txt";
2643  let ss = fileio.createStreamSync(filePath, "r+");
2644  ```
2645
2646
2647## fileio.fdopenStream<sup>7+</sup>
2648
2649fdopenStream(fd: number, mode: string): Promise&lt;Stream&gt;
2650
2651基于文件描述符打开文件流,使用Promise异步回调。
2652
2653> **说明**:
2654>
2655> 从API version 9开始废弃,请使用[fs.fdopenStream](js-apis-file-fs.md#fsfdopenstream)替代。
2656
2657**系统能力**:SystemCapability.FileManagement.File.FileIO
2658
2659**参数:**
2660
2661  | 参数名  | 类型     | 必填   | 说明                                       |
2662  | ---- | ------ | ---- | ---------------------------------------- |
2663  | fd   | number | 是    | 待打开文件的文件描述符。                             |
2664  | mode | string | 是    | -&nbsp;r:打开只读文件,该文件必须存在。<br/>-&nbsp;r+:打开可读写的文件,该文件必须存在。<br/>-&nbsp;w:打开只写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。<br/>-&nbsp;w+:打开可读写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。<br/>-&nbsp;a:以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。<br/>-&nbsp;a+:以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 |
2665
2666**返回值:**
2667
2668  | 类型                               | 说明        |
2669  | --------------------------------- | --------- |
2670  | Promise&lt;[Stream](#stream)&gt; | Promise对象。返回文件流的结果。 |
2671
2672**示例:**
2673
2674  ```ts
2675  import { BusinessError } from '@ohos.base';
2676  let filePath = pathDir + "/test.txt";
2677  let fd = fileio.openSync(filePath);
2678  fileio.fdopenStream(fd, "r+").then((stream: fileio.Stream) => {
2679    console.info("openStream succeed");
2680  }).catch((err: BusinessError) => {
2681    console.info("openStream failed with error:" + err);
2682  });
2683  ```
2684
2685
2686## fileio.fdopenStream<sup>7+</sup>
2687
2688fdopenStream(fd: number, mode: string, callback: AsyncCallback&lt;Stream&gt;): void
2689
2690基于文件描述符打开文件流,使用callback异步回调。
2691
2692> **说明**:
2693>
2694> 从API version 9开始废弃,请使用[fs.fdopenStream](js-apis-file-fs.md#fsfdopenstream-1)替代。
2695
2696**系统能力**:SystemCapability.FileManagement.File.FileIO
2697
2698**参数:**
2699
2700  | 参数名      | 类型                                       | 必填   | 说明                                       |
2701  | -------- | ---------------------------------------- | ---- | ---------------------------------------- |
2702  | fd       | number                                   | 是    | 待打开文件的文件描述符。                             |
2703  | mode     | string                                   | 是    | -&nbsp;r:打开只读文件,该文件必须存在。<br/>-&nbsp;r+:打开可读写的文件,该文件必须存在。<br/>-&nbsp;w:打开只写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。<br/>-&nbsp;w+:打开可读写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。<br/>-&nbsp;a:以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。<br/>-&nbsp;a+:以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 |
2704  | callback | AsyncCallback&lt;[Stream](#stream)&gt; | 是    | 异步打开文件流之后的回调。                            |
2705
2706**示例:**
2707
2708  ```ts
2709  import { BusinessError } from '@ohos.base';
2710  let filePath = pathDir + "/test.txt";
2711  let fd = fileio.openSync(filePath);
2712  fileio.fdopenStream(fd, "r+", (err: BusinessError, stream: fileio.Stream) => {
2713    // do something
2714  });
2715  ```
2716
2717
2718## fileio.fdopenStreamSync<sup>7+</sup>
2719
2720fdopenStreamSync(fd: number, mode: string): Stream
2721
2722以同步方法基于文件描述符打开文件流。
2723
2724> **说明**:
2725>
2726> 从API version 9开始废弃,请使用[fs.fdopenStreamSync](js-apis-file-fs.md#fsfdopenstreamsync)替代。
2727
2728**系统能力**:SystemCapability.FileManagement.File.FileIO
2729
2730**参数:**
2731
2732  | 参数名  | 类型     | 必填   | 说明                                       |
2733  | ---- | ------ | ---- | ---------------------------------------- |
2734  | fd   | number | 是    | 待打开文件的文件描述符。                             |
2735  | mode | string | 是    | -&nbsp;r:打开只读文件,该文件必须存在。<br/>-&nbsp;r+:打开可读写的文件,该文件必须存在。<br/>-&nbsp;w:打开只写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。<br/>-&nbsp;w+:打开可读写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。<br/>-&nbsp;a:以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。<br/>-&nbsp;a+:以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 |
2736
2737**返回值:**
2738
2739  | 类型                | 说明        |
2740  | ------------------ | --------- |
2741  | [Stream](#stream) | 返回文件流的结果。 |
2742
2743**示例:**
2744
2745  ```ts
2746  let filePath = pathDir + "/test.txt";
2747  let fd = fileio.openSync(filePath);
2748  let ss = fileio.fdopenStreamSync(fd, "r+");
2749  ```
2750
2751
2752## fileio.fchown<sup>7+</sup>
2753
2754fchown(fd: number, uid: number, gid: number): Promise&lt;void&gt;
2755
2756基于文件描述符改变文件所有者,使用Promise异步回调。
2757
2758> **说明**:
2759>
2760> 从API version 9开始废弃。
2761
2762**系统能力**:SystemCapability.FileManagement.File.FileIO
2763
2764**参数:**
2765
2766  | 参数名  | 类型     | 必填   | 说明           |
2767  | ---- | ------ | ---- | ------------ |
2768  | fd   | number | 是    | 待改变文件的文件描述符。 |
2769  | uid  | number | 是    | 文件所有者的UID。   |
2770  | gid  | number | 是    | 文件所有组的GID。   |
2771
2772**返回值:**
2773
2774  | 类型                  | 说明                           |
2775  | ------------------- | ---------------------------- |
2776  | Promise&lt;void&gt; | Promise对象。无返回值。 |
2777
2778**示例:**
2779
2780  ```ts
2781  import { BusinessError } from '@ohos.base';
2782  let filePath = pathDir + "/test.txt";
2783  let fd = fileio.openSync(filePath);
2784  let stat = fileio.statSync(filePath);
2785  fileio.fchown(fd, stat.uid, stat.gid).then(() => {
2786    console.info("chown succeed");
2787  }).catch((err: BusinessError) => {
2788    console.info("chown failed with error:" + err);
2789  });
2790  ```
2791
2792
2793## fileio.fchown<sup>7+</sup>
2794
2795fchown(fd: number, uid: number, gid: number, callback: AsyncCallback&lt;void&gt;): void
2796
2797基于文件描述符改变文件所有者,使用callback异步回调。
2798
2799> **说明**:
2800>
2801> 从API version 9开始废弃。
2802
2803**系统能力**:SystemCapability.FileManagement.File.FileIO
2804
2805**参数:**
2806
2807  | 参数名      | 类型                        | 必填   | 说明              |
2808  | -------- | ------------------------- | ---- | --------------- |
2809  | fd       | number                    | 是    | 待改变文件的文件描述符。    |
2810  | uid      | number                    | 是    | 文件所有者的UID。      |
2811  | gid      | number                    | 是    | 文件所有组的GID。      |
2812  | callback | AsyncCallback&lt;void&gt; | 是    | 异步改变文件所有者之后的回调。 |
2813
2814**示例:**
2815
2816  ```ts
2817  import { BusinessError } from '@ohos.base';
2818  let filePath = pathDir + "/test.txt";
2819  let fd = fileio.openSync(filePath);
2820  let stat = fileio.statSync(filePath);
2821  fileio.fchown(fd, stat.uid, stat.gid, (err: BusinessError) => {
2822    // do something
2823  });
2824  ```
2825
2826
2827## fileio.fchownSync<sup>7+</sup>
2828
2829fchownSync(fd: number, uid: number, gid: number): void
2830
2831以同步方法基于文件描述符改变文件所有者。
2832
2833> **说明**:
2834>
2835> 从API version 9开始废弃。
2836
2837**系统能力**:SystemCapability.FileManagement.File.FileIO
2838
2839**参数:**
2840
2841  | 参数名  | 类型     | 必填   | 说明           |
2842  | ---- | ------ | ---- | ------------ |
2843  | fd   | number | 是    | 待改变文件的文件描述符。 |
2844  | uid  | number | 是    | 文件所有者的UID。   |
2845  | gid  | number | 是    | 文件所有组的GID。   |
2846
2847**示例:**
2848
2849  ```ts
2850  let filePath = pathDir + "/test.txt";
2851  let fd = fileio.openSync(filePath);
2852  let stat = fileio.statSync(filePath);
2853  fileio.fchownSync(fd, stat.uid, stat.gid);
2854  ```
2855
2856
2857## fileio.lchown<sup>7+</sup>
2858
2859lchown(path: string, uid: number, gid: number): Promise&lt;void&gt;
2860
2861基于文件路径改变文件所有者,更改符号链接本身的所有者,而不是符号链接所指向的实际文件,使用Promise异步回调。
2862
2863> **说明**:
2864>
2865> 从API version 9开始废弃。
2866
2867**系统能力**:SystemCapability.FileManagement.File.FileIO
2868
2869**参数:**
2870
2871| 参数名 | 类型   | 必填 | 说明                       |
2872| ------ | ------ | ---- | -------------------------- |
2873| path   | string | 是   | 待打开文件的应用沙箱路径。 |
2874| uid    | number | 是   | 新的UID。                  |
2875| gid    | number | 是   | 新的GID。                  |
2876
2877**返回值:**
2878
2879  | 类型                  | 说明                           |
2880  | ------------------- | ---------------------------- |
2881  | Promise&lt;void&gt; | Promise对象。无返回值。 |
2882
2883**示例:**
2884
2885  ```ts
2886  import { BusinessError } from '@ohos.base';
2887  let filePath = pathDir + "/test.txt";
2888  let stat = fileio.statSync(filePath);
2889  fileio.lchown(filePath, stat.uid, stat.gid).then(() => {
2890    console.info("chown succeed");
2891  }).catch((err: BusinessError) => {
2892    console.info("chown failed with error:" + err);
2893  });
2894  ```
2895
2896
2897## fileio.lchown<sup>7+</sup>
2898
2899lchown(path: string, uid: number, gid: number, callback: AsyncCallback&lt;void&gt;): void
2900
2901基于文件路径改变文件所有者,更改符号链接本身的所有者,而不是更改符号链接所指向的实际文件,使用callback异步回调。
2902
2903> **说明**:
2904>
2905> 从API version 9开始废弃。
2906
2907**系统能力**:SystemCapability.FileManagement.File.FileIO
2908
2909**参数:**
2910
2911| 参数名   | 类型                      | 必填 | 说明                           |
2912| -------- | ------------------------- | ---- | ------------------------------ |
2913| path     | string                    | 是   | 待打开文件的应用沙箱路径。     |
2914| uid      | number                    | 是   | 新的UID。                      |
2915| gid      | number                    | 是   | 新的GID。                      |
2916| callback | AsyncCallback&lt;void&gt; | 是   | 异步改变文件所有者之后的回调。 |
2917
2918**示例:**
2919
2920  ```ts
2921  import { BusinessError } from '@ohos.base';
2922  let filePath = pathDir + "/test.txt";
2923  let stat = fileio.statSync(filePath);
2924  fileio.lchown(filePath, stat.uid, stat.gid, (err: BusinessError) => {
2925    // do something
2926  });
2927  ```
2928
2929
2930## fileio.lchownSync<sup>7+</sup>
2931
2932lchownSync(path: string, uid: number, gid: number): void
2933
2934以同步方法基于文件路径改变文件所有者,更改符号链接本身的所有者,而不是更改符号链接所指向的实际文件。
2935
2936> **说明**:
2937>
2938> 从API version 9开始废弃。
2939
2940**系统能力**:SystemCapability.FileManagement.File.FileIO
2941
2942**参数:**
2943
2944| 参数名 | 类型   | 必填 | 说明                       |
2945| ------ | ------ | ---- | -------------------------- |
2946| path   | string | 是   | 待打开文件的应用沙箱路径。 |
2947| uid    | number | 是   | 新的UID。                  |
2948| gid    | number | 是   | 新的GID。                  |
2949
2950**示例:**
2951
2952  ```ts
2953  let filePath = pathDir + "/test.txt";
2954  let stat = fileio.statSync(filePath);
2955  fileio.lchownSync(filePath, stat.uid, stat.gid);
2956  ```
2957
2958
2959## fileio.createWatcher<sup>7+</sup>
2960
2961createWatcher(filename: string, events: number, callback: AsyncCallback&lt;number&gt;): Watcher
2962
2963监听文件或者目录的变化,使用callback异步回调。
2964
2965**系统能力**:SystemCapability.FileManagement.File.FileIO
2966
2967**参数:**
2968
2969| 参数名   | 类型                              | 必填 | 说明                                                         |
2970| -------- | --------------------------------- | ---- | ------------------------------------------------------------ |
2971| filePath | string                            | 是   | 待监视文件的应用沙箱路径。                                   |
2972| events   | number                            | 是   | -&nbsp;1:&nbsp;监听文件或者目录是否发生重命名。<br/>-&nbsp;2:监听文件或者目录内容的是否修改。<br/>-&nbsp;3:两者都有。 |
2973| callback | AsyncCallback&lt;number&gt; | 是   | 每发生变化一次,调用一次此函数。                             |
2974
2975**返回值:**
2976
2977  | 类型                  | 说明         |
2978  | -------------------- | ---------- |
2979  | [Watcher](#watcher7) | Promise对象。返回文件变化监听的实例。 |
2980
2981**示例:**
2982
2983  ```js
2984  let filePath = pathDir + "/test.txt";
2985  fileio.createWatcher(filePath, 1, (err, event) => {
2986    console.info("event: " + event + "errmsg: " + JSON.stringify(err));
2987  });
2988
2989  ```
2990
2991
2992## Readout
2993
2994仅用于read方法,获取文件的读取结果。
2995
2996> **说明**:
2997>
2998> 从API version 9开始废弃。
2999
3000**系统能力**:以下各项对应的系统能力均为SystemCapability.FileManagement.File.FileIO3001
3002| 名称        | 类型       | 可读   | 可写   | 说明                |
3003| --------- | ---------- | ---- | ---- | ----------------- |
3004| bytesRead | number     | 是    | 是    | 实际读取长度。           |
3005| offset    | number     | 是    | 是    | 读取数据相对于缓冲区首地址的偏移。 |
3006| buffer    | ArrayBuffer | 是    | 是    | 保存读取数据的缓冲区。       |
3007
3008
3009## Stat
3010
3011文件具体信息,在调用Stat的方法前,需要先通过[stat()](#fileiostat)方法(同步或异步)来构建一个Stat实例。
3012
3013> **说明**:
3014>
3015> 从API version 9开始废弃,请使用[fs.Stat](js-apis-file-fs.md#stat)替代。
3016
3017**系统能力**:以下各项对应的系统能力均为SystemCapability.FileManagement.File.FileIO3018
3019### 属性
3020
3021| 名称     | 类型   | 可读   | 可写   | 说明                                       |
3022| ------ | ------ | ---- | ---- | ---------------------------------------- |
3023| dev    | number | 是    | 否    | 标识包含该文件的主设备号。                            |
3024| ino    | number | 是    | 否    | 标识该文件。通常同设备上的不同文件的INO不同。                 |
3025| mode   | number | 是    | 否    | 表示文件类型及权限,其首&nbsp;4&nbsp;位表示文件类型,后&nbsp;12&nbsp;位表示权限。各特征位的含义如下:<br/>-&nbsp;0o170000:可用于获取文件类型的掩码。<br/>-&nbsp;0o140000:文件是套接字。<br/>-&nbsp;0o120000:文件是符号链接。<br/>-&nbsp;0o100000:文件是一般文件。<br/>-&nbsp;0o060000:文件属于块设备。<br/>-&nbsp;0o040000:文件是目录。<br/>-&nbsp;0o020000:文件是字符设备。<br/>-&nbsp;0o010000:文件是命名管道,即FIFO。<br/>-&nbsp;0o0700:可用于获取用户权限的掩码。<br/>-&nbsp;0o0400:用户读,对于普通文件,所有者可读取文件;对于目录,所有者可读取目录项。<br/>-&nbsp;0o0200:用户写,对于普通文件,所有者可写入文件;对于目录,所有者可创建/删除目录项。<br/>-&nbsp;0o0100:用户执行,对于普通文件,所有者可执行文件;对于目录,所有者可在目录中搜索给定路径名。<br/>-&nbsp;0o0070:可用于获取用户组权限的掩码。<br/>-&nbsp;0o0040:用户组读,对于普通文件,所有用户组可读取文件;对于目录,所有用户组可读取目录项。<br/>-&nbsp;0o0020:用户组写,对于普通文件,所有用户组可写入文件;对于目录,所有用户组可创建/删除目录项。<br/>-&nbsp;0o0010:用户组执行,对于普通文件,所有用户组可执行文件;对于目录,所有用户组是否可在目录中搜索给定路径名。<br/>-&nbsp;0o0007:可用于获取其他用户权限的掩码。<br/>-&nbsp;0o0004:其他读,对于普通文件,其余用户可读取文件;对于目录,其他用户组可读取目录项。<br/>-&nbsp;0o0002:其他写,对于普通文件,其余用户可写入文件;对于目录,其他用户组可创建/删除目录项。<br/>-&nbsp;0o0001:其他执行,对于普通文件,其余用户可执行文件;对于目录,其他用户组可在目录中搜索给定路径名。 |
3026| nlink  | number | 是    | 否    | 文件的硬链接数。                                 |
3027| uid    | number | 是    | 否    | 文件所有者的ID。                                |
3028| gid    | number | 是    | 否    | 文件所有组的ID。                                |
3029| rdev   | number | 是    | 否    | 标识包含该文件的从设备号。                            |
3030| size   | number | 是    | 否    | 文件的大小,以字节为单位。仅对普通文件有效。                   |
3031| blocks | number | 是    | 否    | 文件占用的块数,计算时块大小按512B计算。                   |
3032| atime  | number | 是    | 否    | 上次访问该文件的时间,表示距1970年1月1日0时0分0秒的秒数。        |
3033| mtime  | number | 是    | 否    | 上次修改该文件的时间,表示距1970年1月1日0时0分0秒的秒数。        |
3034| ctime  | number | 是    | 否    | 最近改变文件状态的时间,表示距1970年1月1日0时0分0秒的秒数。       |
3035
3036
3037### isBlockDevice
3038
3039isBlockDevice(): boolean
3040
3041用于判断文件是否是块特殊文件。一个块特殊文件只能以块为粒度进行访问,且访问的时候带缓存。
3042
3043> **说明**:
3044>
3045> 从API version 9开始废弃,请使用[fs.Stat.isBlockDevice](js-apis-file-fs.md#isblockdevice)替代。
3046
3047**系统能力**:SystemCapability.FileManagement.File.FileIO
3048
3049**返回值:**
3050
3051  | 类型      | 说明               |
3052  | ------- | ---------------- |
3053  | boolean | 表示文件是否是块特殊设备。 |
3054
3055**示例:**
3056
3057  ```ts
3058  let filePath = pathDir + "/test.txt";
3059  let isBLockDevice = fileio.statSync(filePath).isBlockDevice();
3060  ```
3061
3062
3063### isCharacterDevice
3064
3065isCharacterDevice(): boolean
3066
3067用于判断文件是否是字符特殊文件。一个字符特殊设备可进行随机访问,且访问的时候不带缓存。
3068
3069> **说明**:
3070>
3071> 从API version 9开始废弃,请使用[fs.Stat.isCharacterDevice](js-apis-file-fs.md#ischaracterdevice)替代。
3072
3073**系统能力**:SystemCapability.FileManagement.File.FileIO
3074
3075**返回值:**
3076
3077  | 类型      | 说明                |
3078  | ------- | ----------------- |
3079  | boolean | 表示文件是否是字符特殊设备。 |
3080
3081**示例:**
3082
3083  ```ts
3084  let filePath = pathDir + "/test.txt";
3085  let isCharacterDevice = fileio.statSync(filePath).isCharacterDevice();
3086  ```
3087
3088
3089### isDirectory
3090
3091isDirectory(): boolean
3092
3093用于判断文件是否是目录。
3094
3095> **说明**:
3096>
3097> 从API version 9开始废弃,请使用[fs.Stat.isDirectory](js-apis-file-fs.md#isdirectory)替代。
3098
3099**系统能力**:SystemCapability.FileManagement.File.FileIO
3100
3101**返回值:**
3102
3103  | 类型      | 说明            |
3104  | ------- | ------------- |
3105  | boolean | 表示文件是否是目录。 |
3106
3107**示例:**
3108
3109  ```ts
3110  let dirPath = pathDir + "/test";
3111  let isDirectory = fileio.statSync(dirPath).isDirectory();
3112  ```
3113
3114
3115### isFIFO
3116
3117isFIFO(): boolean
3118
3119用于判断文件是否是命名管道(有时也称为FIFO)。命名管道通常用于进程间通信。
3120
3121> **说明**:
3122>
3123> 从API version 9开始废弃,请使用[fs.Stat.isFIFO](js-apis-file-fs.md#isfifo)替代。
3124
3125**系统能力**:SystemCapability.FileManagement.File.FileIO
3126
3127**返回值:**
3128
3129  | 类型      | 说明                    |
3130  | ------- | --------------------- |
3131  | boolean | 表示文件是否是&nbsp;FIFO。 |
3132
3133**示例:**
3134
3135  ```ts
3136  let filePath = pathDir + "/test.txt";
3137  let isFIFO = fileio.statSync(filePath).isFIFO();
3138  ```
3139
3140
3141### isFile
3142
3143isFile(): boolean
3144
3145用于判断文件是否是普通文件。
3146
3147> **说明**:
3148>
3149> 从API version 9开始废弃,请使用[fs.Stat.isFile](js-apis-file-fs.md#isfile)替代。
3150
3151**系统能力**:SystemCapability.FileManagement.File.FileIO
3152
3153**返回值:**
3154
3155  | 类型      | 说明              |
3156  | ------- | --------------- |
3157  | boolean | 表示文件是否是普通文件。 |
3158
3159**示例:**
3160
3161  ```ts
3162  let filePath = pathDir + "/test.txt";
3163  let isFile = fileio.statSync(filePath).isFile();
3164  ```
3165
3166
3167### isSocket
3168
3169isSocket(): boolean
3170
3171用于判断文件是否是套接字。
3172
3173> **说明**:
3174>
3175> 从API version 9开始废弃,请使用[fs.Stat.isSocket](js-apis-file-fs.md#issocket)替代。
3176
3177**系统能力**:SystemCapability.FileManagement.File.FileIO
3178
3179**返回值:**
3180
3181  | 类型      | 说明             |
3182  | ------- | -------------- |
3183  | boolean | 表示文件是否是套接字。 |
3184
3185**示例:**
3186
3187  ```ts
3188  let filePath = pathDir + "/test.txt";
3189  let isSocket = fileio.statSync(filePath).isSocket();
3190  ```
3191
3192
3193### isSymbolicLink
3194
3195isSymbolicLink(): boolean
3196
3197用于判断文件是否是符号链接。
3198
3199> **说明**:
3200>
3201> 从API version 9开始废弃,请使用[fs.Stat.isSymbolicLink](js-apis-file-fs.md#issymboliclink)替代。
3202
3203**系统能力**:SystemCapability.FileManagement.File.FileIO
3204
3205**返回值:**
3206
3207  | 类型      | 说明              |
3208  | ------- | --------------- |
3209  | boolean | 表示文件是否是符号链接。 |
3210
3211**示例:**
3212
3213  ```ts
3214  let filePath = pathDir + "/test";
3215  let isSymbolicLink = fileio.statSync(filePath).isSymbolicLink();
3216  ```
3217
3218
3219## Watcher<sup>7+</sup>
3220
3221Watcher是文件变化监听的实例,调用Watcher.stop()方法(同步或异步)来停止文件监听。
3222
3223
3224### stop<sup>7+</sup>
3225
3226stop(): Promise&lt;void&gt;
3227
3228关闭watcher监听,使用Promise异步回调。
3229
3230**系统能力**:SystemCapability.FileManagement.File.FileIO
3231
3232**示例:**
3233
3234  ```js
3235  let filePath = pathDir + "/test.txt";
3236  let watcher = fileio.createWatcher(filePath, 1, (err, event) => {
3237    console.info("event: " + event + "errmsg: " + JSON.stringify(err));
3238  });
3239  watcher.stop().then(() => {
3240    console.info("close watcher succeed");
3241  });
3242  ```
3243
3244
3245### stop<sup>7+</sup>
3246
3247stop(callback: AsyncCallback&lt;void&gt;): void
3248
3249关闭watcher监听,使用callback异步回调。
3250
3251**系统能力**:SystemCapability.FileManagement.File.FileIO
3252
3253**参数:**
3254
3255  | 参数名      | 类型                        | 必填   | 说明                     |
3256  | -------- | ------------------------- | ---- | ---------------------- |
3257  | callback | AsyncCallback&lt;void&gt; | 是    | 以异步方法关闭watcher监听之后的回调。 |
3258
3259**示例:**
3260
3261  ```js
3262  let filePath = pathDir + "/test.txt";
3263  let watcher = fileio.createWatcher(filePath, 1, (err, event) => {
3264    console.info("event: " + event + "errmsg: " + JSON.stringify(err));
3265  });
3266  watcher.stop(() => {
3267    console.info("close watcher succeed");
3268  })
3269  ```
3270
3271
3272## Stream
3273
3274文件流,在调用Stream的方法前,需要先通过createStream()方法(同步或异步)来构建一个Stream实例。
3275
3276> **说明**:
3277>
3278> 从API version 9开始废弃,请使用[fs.Stream](js-apis-file-fs.md#stream)替代。
3279
3280### close<sup>7+</sup>
3281
3282close(): Promise&lt;void&gt;
3283
3284关闭文件流,使用Promise异步回调。
3285
3286> **说明**:
3287>
3288> 从API version 9开始废弃,请使用[fs.Stream.close](js-apis-file-fs.md#close)替代。
3289
3290**系统能力**:SystemCapability.FileManagement.File.FileIO
3291
3292**返回值:**
3293
3294  | 类型                  | 说明            |
3295  | ------------------- | ------------- |
3296  | Promise&lt;void&gt; | Promise对象。返回表示异步关闭文件流的结果。 |
3297
3298**示例:**
3299
3300  ```ts
3301  import { BusinessError } from '@ohos.base';
3302  let filePath = pathDir + "/test.txt";
3303  let ss = fileio.createStreamSync(filePath, "r+");
3304  ss.close().then(() => {
3305    console.info("close fileStream succeed");
3306  }).catch((err: BusinessError) => {
3307    console.info("close fileStream  failed with error:" + err);
3308  });
3309  ```
3310
3311
3312### close<sup>7+</sup>
3313
3314close(callback: AsyncCallback&lt;void&gt;): void
3315
3316异步关闭文件流,使用callback异步回调。
3317
3318> **说明**:
3319>
3320> 从API version 9开始废弃,请使用[fs.Stream.close](js-apis-file-fs.md#close-1)替代。
3321
3322**系统能力**:SystemCapability.FileManagement.File.FileIO
3323
3324**参数:**
3325
3326  | 参数名      | 类型                        | 必填   | 说明            |
3327  | -------- | ------------------------- | ---- | ------------- |
3328  | callback | AsyncCallback&lt;void&gt; | 是    | 异步关闭文件流之后的回调。 |
3329
3330**示例:**
3331
3332  ```ts
3333  import { BusinessError } from '@ohos.base';
3334  let filePath = pathDir + "/test.txt";
3335  let ss = fileio.createStreamSync(filePath, "r+");
3336  ss.close((err: BusinessError) => {
3337    // do something
3338  });
3339  ```
3340
3341
3342### closeSync
3343
3344closeSync(): void
3345
3346同步关闭文件流。
3347
3348> **说明**:
3349>
3350> 从API version 9开始废弃,请使用[fs.Stream.closeSync](js-apis-file-fs.md#closesync)替代。
3351
3352**系统能力**:SystemCapability.FileManagement.File.FileIO
3353
3354**示例:**
3355
3356  ```ts
3357  let filePath = pathDir + "/test.txt";
3358  let ss = fileio.createStreamSync(filePath, "r+");
3359  ss.closeSync();
3360  ```
3361
3362
3363### flush<sup>7+</sup>
3364
3365flush(): Promise&lt;void&gt;
3366
3367刷新文件流,使用Promise异步回调。
3368
3369> **说明**:
3370>
3371> 从API version 9开始废弃,请使用[fs.Stream.flush](js-apis-file-fs.md#flush)替代。
3372
3373**系统能力**:SystemCapability.FileManagement.File.FileIO
3374
3375**返回值:**
3376
3377  | 类型                  | 说明            |
3378  | ------------------- | ------------- |
3379  | Promise&lt;void&gt; | Promise对象。返回表示异步刷新文件流的结果。 |
3380
3381**示例:**
3382
3383  ```ts
3384  import { BusinessError } from '@ohos.base';
3385  let filePath = pathDir + "/test.txt";
3386  let ss = fileio.createStreamSync(filePath, "r+");
3387  ss.flush().then(() => {
3388    console.info("flush succeed");
3389  }).catch((err: BusinessError) => {
3390    console.info("flush failed with error:" + err);
3391  });
3392  ```
3393
3394
3395### flush<sup>7+</sup>
3396
3397flush(callback: AsyncCallback&lt;void&gt;): void
3398
3399异步刷新文件流,使用callback异步回调。
3400
3401> **说明**:
3402>
3403> 从API version 9开始废弃,请使用[fs.Stream.flush](js-apis-file-fs.md#flush-1)替代。
3404
3405**系统能力**:SystemCapability.FileManagement.File.FileIO
3406
3407**参数:**
3408
3409  | 参数名      | 类型                        | 必填   | 说明             |
3410  | -------- | ------------------------- | ---- | -------------- |
3411  | callback | AsyncCallback&lt;void&gt; | 是    | 异步刷新文件流后的回调函数。 |
3412
3413**示例:**
3414
3415  ```ts
3416  import { BusinessError } from '@ohos.base';
3417  let filePath = pathDir + "/test.txt";
3418  let ss = fileio.createStreamSync(filePath, "r+");
3419  ss.flush((err: BusinessError) => {
3420    // do something
3421  });
3422  ```
3423
3424
3425### flushSync<sup>7+</sup>
3426
3427flushSync(): void
3428
3429同步刷新文件流。
3430
3431> **说明**:
3432>
3433> 从API version 9开始废弃,请使用[fs.Stream.flushSync](js-apis-file-fs.md#flushsync)替代。
3434
3435**系统能力**:SystemCapability.FileManagement.File.FileIO
3436
3437**示例:**
3438
3439  ```ts
3440  let filePath = pathDir + "/test.txt";
3441  let ss = fileio.createStreamSync(filePath, "r+");
3442  ss.flushSync();
3443  ```
3444
3445
3446### write<sup>7+</sup>
3447
3448write(buffer: ArrayBuffer|string, options?: { offset?: number; length?: number; position?: number; encoding?: string; }): Promise&lt;number&gt;
3449
3450将数据写入流文件,使用Promise异步回调。
3451
3452> **说明**:
3453>
3454> 从API version 9开始废弃,请使用[fs.Stream.write](js-apis-file-fs.md#write)替代。
3455
3456**系统能力**:SystemCapability.FileManagement.File.FileIO
3457
3458**参数:**
3459
3460  | 参数名     | 类型                              | 必填   | 说明                                       |
3461  | ------- | ------------------------------- | ---- | ---------------------------------------- |
3462  | buffer  | ArrayBuffer\|string | 是    | 待写入文件的数据,可来自缓冲区或字符串。                     |
3463  | options | Object                          | 否    | 支持如下选项:<br/>-&nbsp;offset,number类型,表示期望写入数据的位置相对于数据首地址的偏移。可选,默认为0。<br/>-&nbsp;length,number类型,表示期望写入数据的长度。可选,默认缓冲区长度减去偏移长度。<br/>-&nbsp;position,number类型,表示期望写入文件的位置。可选,默认从当前位置开始写。<br/>-&nbsp;encoding,string类型,当数据是string类型时有效,表示数据的编码方式,默认&nbsp;'utf-8'。仅支持&nbsp;'utf-8'。<br/>约束:offset+length<=buffer.size。  |
3464
3465**返回值:**
3466
3467  | 类型                    | 说明       |
3468  | --------------------- | -------- |
3469  | Promise&lt;number&gt; | Promise对象。返回实际写入的长度。 |
3470
3471**示例:**
3472
3473  ```ts
3474  import { BusinessError } from '@ohos.base';
3475  let filePath = pathDir + "/test.txt";
3476  let ss = fileio.createStreamSync(filePath, "r+");
3477  class Option {
3478    offset: number = 0;
3479    length: number = 4096;
3480    position: number = 0;
3481    encoding: string = 'utf-8';
3482  }
3483  let option = new Option();
3484  option.offset = 1;
3485  option.length = 5;
3486  option.position = 5;
3487  ss.write("hello, world", option).then((number: number) => {
3488    console.info("write succeed and size is:" + number);
3489  }).catch((err: BusinessError) => {
3490    console.info("write failed with error:" + err);
3491  });
3492  ```
3493
3494
3495### write<sup>7+</sup>
3496
3497write(buffer: ArrayBuffer|string, options: { offset?: number; length?: number; position?: number; encoding?: string; }, callback: AsyncCallback&lt;number&gt;): void
3498
3499将数据写入流文件,使用callback异步回调。
3500
3501> **说明**:
3502>
3503> 从API version 9开始废弃,请使用[fs.Stream.write](js-apis-file-fs.md#write-1)替代。
3504
3505**系统能力**:SystemCapability.FileManagement.File.FileIO
3506
3507**参数:**
3508
3509  | 参数名   | 类型                            | 必填 | 说明                                                         |
3510  | -------- | ------------------------------- | ---- | ------------------------------------------------------------ |
3511  | buffer   | ArrayBuffer\|string | 是   | 待写入文件的数据,可来自缓冲区或字符串。                     |
3512  | options  | Object                          | 否   | 支持如下选项:<br/>-&nbsp;offset,number类型,表示期望写入数据的位置相对于数据首地址的偏移。可选,默认为0。<br/>-&nbsp;length,number类型,表示期望写入数据的长度。可选,默认缓冲区长度减去偏移长度。<br/>-&nbsp;position,number类型,表示期望写入文件的位置。可选,默认从当前位置开始写。<br/>-&nbsp;encoding,string类型,当数据是string类型时有效,表示数据的编码方式,默认&nbsp;'utf-8'。仅支持&nbsp;'utf-8'。<br/>约束:offset+length<=buffer.size。 |
3513  | callback | AsyncCallback&lt;number&gt;     | 是   | 异步写入完成后执行的回调函数。                               |
3514
3515**示例:**
3516
3517  ```ts
3518  import { BusinessError } from '@ohos.base';
3519  let filePath = pathDir + "/test.txt";
3520  let ss = fileio.createStreamSync(filePath, "r+");
3521  class Option {
3522    offset: number = 0;
3523    length: number = 4096;
3524    position: number = 0;
3525    encoding: string = 'utf-8';
3526  }
3527  let option = new Option();
3528  option.offset = 1;
3529  option.length = 5;
3530  option.position = 5;
3531  ss.write("hello, world", option, (err: BusinessError, bytesWritten: number) => {
3532    if (bytesWritten) {
3533      // do something
3534      console.info("write succeed and size is:" + bytesWritten);
3535    }
3536  });
3537  ```
3538
3539
3540### writeSync<sup>7+</sup>
3541
3542writeSync(buffer: ArrayBuffer|string, options?: { offset?: number; length?: number; position?: number; encoding?: string; }): number
3543
3544以同步方法将数据写入流文件。
3545
3546> **说明**:
3547>
3548> 从API version 9开始废弃,请使用[fs.Stream.writeSync](js-apis-file-fs.md#writesync)替代。
3549
3550**系统能力**:SystemCapability.FileManagement.File.FileIO
3551
3552**参数:**
3553
3554  | 参数名     | 类型                              | 必填   | 说明                                       |
3555  | ------- | ------------------------------- | ---- | ---------------------------------------- |
3556  | buffer  | ArrayBuffer\|string | 是    | 待写入文件的数据,可来自缓冲区或字符串。                     |
3557  | options | Object                          | 否    | 支持如下选项:<br/>-&nbsp;offset,number类型,表示期望写入数据的位置相对于数据首地址的偏移。可选,默认为0。<br/>-&nbsp;length,number类型,表示期望写入数据的长度。可选,默认缓冲区长度减去偏移长度。<br/>-&nbsp;position,number类型,表示期望写入文件的位置。可选,默认从当前位置开始写。<br/>-&nbsp;encoding,string类型,当数据是string类型时有效,表示数据的编码方式,默认&nbsp;'utf-8'。仅支持&nbsp;'utf-8'。<br/>约束:offset+length<=buffer.size。  |
3558
3559**返回值:**
3560
3561  | 类型     | 说明       |
3562  | ------ | -------- |
3563  | number | 实际写入的长度。 |
3564
3565**示例:**
3566
3567  ```ts
3568  let filePath = pathDir + "/test.txt";
3569  let ss = fileio.createStreamSync(filePath,"r+");
3570  class Option {
3571    offset: number = 0;
3572    length: number = 4096;
3573    position: number = 0;
3574    encoding: string = 'utf-8';
3575  }
3576  let option = new Option();
3577  option.offset = 1;
3578  option.length = 5;
3579  option.position = 5;
3580  let num = ss.writeSync("hello, world", option);
3581  ```
3582
3583
3584### read<sup>7+</sup>
3585
3586read(buffer: ArrayBuffer, options?: { position?: number; offset?: number; length?: number; }): Promise&lt;ReadOut&gt;
3587
3588从流文件读取数据,使用Promise异步回调。
3589
3590> **说明**:
3591>
3592> 从API version 9开始废弃,请使用[fs.Stream.read](js-apis-file-fs.md#read)替代。
3593
3594**系统能力**:SystemCapability.FileManagement.File.FileIO
3595
3596**参数:**
3597
3598  | 参数名     | 类型          | 必填   | 说明                                       |
3599  | ------- | ----------- | ---- | ---------------------------------------- |
3600  | buffer  | ArrayBuffer | 是    | 用于读取文件的缓冲区。                              |
3601  | options | Object      | 否    | 支持如下选项:<br/>-&nbsp;offset,number类型,表示将数据读取到缓冲区的位置,即相对于缓冲区首地址的偏移。可选,默认为0。<br/>-&nbsp;length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度减去偏移长度。<br/>-&nbsp;position,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读。<br/>约束:offset+length<=buffer.size。  |
3602
3603**返回值:**
3604
3605  | 类型                                 | 说明     |
3606  | ---------------------------------- | ------ |
3607  | Promise&lt;[ReadOut](#readout)&gt; | Promise对象。返回读取的结果。 |
3608
3609**示例:**
3610
3611  ```ts
3612  import { BusinessError } from '@ohos.base';
3613  import buffer from '@ohos.buffer';
3614  import { ReadOut } from '@ohos.fileio';
3615  let filePath = pathDir + "/test.txt";
3616  let ss = fileio.createStreamSync(filePath, "r+");
3617  let arrayBuffer = new ArrayBuffer(4096);
3618  class Option {
3619    offset: number = 0;
3620    length: number = 4096;
3621    position: number = 0;
3622  }
3623  let option = new Option();
3624  option.offset = 1;
3625  option.length = 5;
3626  option.position = 5;
3627  ss.read(arrayBuffer, option).then((readResult: ReadOut) => {
3628    console.info("read data succeed");
3629    let buf = buffer.from(arrayBuffer, 0, readResult.bytesRead);
3630    console.info(`The content of file: ${buf.toString()}`);
3631  }).catch((err: BusinessError) => {
3632    console.info("read data failed with error:" + err);
3633  });
3634  ```
3635
3636
3637### read<sup>7+</sup>
3638
3639read(buffer: ArrayBuffer, options: { position?: number; offset?: number; length?: number; }, callback: AsyncCallback&lt;ReadOut&gt;): void
3640
3641从流文件读取数据,使用callback异步回调。
3642
3643> **说明**:
3644>
3645> 从API version 9开始废弃,请使用[fs.Stream.read](js-apis-file-fs.md#read-1)替代。
3646
3647**系统能力**:SystemCapability.FileManagement.File.FileIO
3648
3649**参数:**
3650
3651  | 参数名      | 类型                                       | 必填   | 说明                                       |
3652  | -------- | ---------------------------------------- | ---- | ---------------------------------------- |
3653  | buffer   | ArrayBuffer                              | 是    | 用于读取文件的缓冲区。                              |
3654  | options  | Object                                   | 否    | 支持如下选项:<br/>-&nbsp;offset,number类型,表示将数据读取到缓冲区的位置,即相对于缓冲区首地址的偏移。可选,默认为0。<br/>-&nbsp;length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度减去偏移长度。<br/>-&nbsp;position,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读。<br/>约束:offset+length<=buffer.size。  |
3655  | callback | AsyncCallback&lt;[ReadOut](#readout)&gt; | 是    | 异步从流文件读取数据之后的回调。                         |
3656
3657**示例:**
3658
3659  ```ts
3660  import { BusinessError } from '@ohos.base';
3661  import buffer from '@ohos.buffer';
3662  import { ReadOut } from '@ohos.fileio';
3663  let filePath = pathDir + "/test.txt";
3664  let ss = fileio.createStreamSync(filePath, "r+");
3665  let arrayBuffer = new ArrayBuffer(4096);
3666  class Option {
3667    offset: number = 0;
3668    length: number = 4096;
3669    position: number = 0;
3670  }
3671  let option = new Option();
3672  option.offset = 1;
3673  option.length = 5;
3674  option.position = 5;
3675  ss.read(arrayBuffer, option, (err: BusinessError, readResult: ReadOut) => {
3676    if (readResult.bytesRead) {
3677      console.info("read data succeed");
3678      let buf = buffer.from(arrayBuffer, 0, readResult.bytesRead);
3679      console.info(`The content of file: ${buf.toString()}`);
3680    }
3681  });
3682  ```
3683
3684
3685### readSync<sup>7+</sup>
3686
3687readSync(buffer: ArrayBuffer, options?: { position?: number; offset?: number; length?: number; }): number
3688
3689以同步方法从流文件读取数据。
3690
3691> **说明**:
3692>
3693> 从API version 9开始废弃,请使用[fs.Stream.readSync](js-apis-file-fs.md#readsync)替代。
3694
3695**系统能力**:SystemCapability.FileManagement.File.FileIO
3696
3697**参数:**
3698
3699  | 参数名     | 类型          | 必填   | 说明                                       |
3700  | ------- | ----------- | ---- | ---------------------------------------- |
3701  | buffer  | ArrayBuffer | 是    | 用于读取文件的缓冲区。                              |
3702  | options | Object      | 否    | 支持如下选项:<br/>-&nbsp;offset,number类型,表示将数据读取到缓冲区的位置,即相对于缓冲区首地址的偏移。可选,默认为0。<br/>-&nbsp;length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度减去偏移长度。<br/>-&nbsp;position,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读。<br/>约束:offset+length<=buffer.size。  |
3703
3704**返回值:**
3705
3706  | 类型     | 说明       |
3707  | ------ | -------- |
3708  | number | 实际读取的长度。 |
3709
3710**示例:**
3711
3712  ```ts
3713  let filePath = pathDir + "/test.txt";
3714  let ss = fileio.createStreamSync(filePath, "r+");
3715  class Option {
3716    offset: number = 0;
3717    length: number = 4096;
3718    position: number = 0;
3719  }
3720  let option = new Option();
3721  option.offset = 1;
3722  option.length = 5;
3723  option.position = 5;
3724  let buf = new ArrayBuffer(4096)
3725  let num = ss.readSync(buf, option);
3726  ```
3727
3728
3729## Dir
3730
3731管理目录,在调用Dir的方法前,需要先通过opendir方法(同步或异步)来构建一个Dir实例。
3732
3733> **说明**:
3734>
3735> 从API version 9开始废弃,请使用[fs.listFile](js-apis-file-fs.md#fslistfile)替代。
3736
3737### read
3738
3739read(): Promise&lt;Dirent&gt;
3740
3741读取下一个目录项,使用Promise异步回调。
3742
3743> **说明**:
3744>
3745> 从API version 9开始废弃,请使用[fs.listFile](js-apis-file-fs.md#fslistfile)替代。
3746
3747**系统能力**:SystemCapability.FileManagement.File.FileIO
3748
3749**返回值:**
3750
3751  | 类型                               | 说明            |
3752  | -------------------------------- | ------------- |
3753  | Promise&lt;[Dirent](#dirent)&gt; | Promise对象。返回表示异步读取目录项的结果。 |
3754
3755**示例:**
3756
3757  ```ts
3758  import { BusinessError } from '@ohos.base';
3759  dir.read().then((dirent: fileio.Dirent) => {
3760    console.log("read succeed, the name of dirent is " + dirent.name);
3761  }).catch((err: BusinessError) => {
3762    console.info("read failed with error:" + err);
3763  });
3764  ```
3765
3766
3767### read
3768
3769read(callback: AsyncCallback&lt;Dirent&gt;): void
3770
3771读取下一个目录项,使用callback异步回调。
3772
3773> **说明**:
3774>
3775> 从API version 9开始废弃,请使用[fs.listFile](js-apis-file-fs.md#fslistfile-1)替代。
3776
3777**系统能力**:SystemCapability.FileManagement.File.FileIO
3778
3779**参数:**
3780
3781  | 参数名      | 类型                                     | 必填   | 说明               |
3782  | -------- | -------------------------------------- | ---- | ---------------- |
3783  | callback | AsyncCallback&lt;[Dirent](#dirent)&gt; | 是    | 异步读取下一个目录项之后的回调。 |
3784
3785**示例:**
3786
3787  ```ts
3788  import { BusinessError } from '@ohos.base';
3789  dir.read((err: BusinessError, dirent: fileio.Dirent) => {
3790    if (dirent) {
3791      // do something
3792      console.log("read succeed, the name of file is " + dirent.name);
3793    }
3794  });
3795  ```
3796
3797
3798### readSync
3799
3800readSync(): Dirent
3801
3802同步读取下一个目录项。
3803
3804> **说明**:
3805>
3806> 从API version 9开始废弃,请使用[fs.listFileSync](js-apis-file-fs.md#fslistfilesync)替代。
3807
3808**系统能力**:SystemCapability.FileManagement.File.FileIO
3809
3810**返回值:**
3811
3812  | 类型                | 说明       |
3813  | ----------------- | -------- |
3814  | [Dirent](#dirent) | 表示一个目录项。 |
3815
3816**示例:**
3817
3818  ```ts
3819  let dirent = dir.readSync();
3820  ```
3821
3822
3823### close<sup>7+</sup>
3824
3825close(): Promise&lt;void&gt;
3826
3827异步关闭目录,使用promise形式返回结果。目录被关闭后,Dir中持有的文件描述将被释放,后续将无法从Dir中读取目录项。
3828
3829> **说明**:
3830>
3831> 从API version 9开始废弃,请使用[fs.listFile](js-apis-file-fs.md#fslistfile)替代。
3832
3833**系统能力**:SystemCapability.FileManagement.File.FileIO
3834
3835**示例:**
3836
3837  ```ts
3838  import { BusinessError } from '@ohos.base';
3839  dir.close().then(() => {
3840    console.info("close dir successfully");
3841  });
3842  ```
3843
3844
3845### close<sup>7+</sup>
3846
3847close(callback: AsyncCallback&lt;void&gt;): void
3848
3849异步关闭目录,使用callback形式返回结果。目录被关闭后,Dir中持有的文件描述将被释放,后续将无法从Dir中读取目录项。
3850
3851> **说明**:
3852>
3853> 从API version 9开始废弃,请使用[fs.listFile](js-apis-file-fs.md#fslistfile-1)替代。
3854
3855**系统能力**:SystemCapability.FileManagement.File.FileIO
3856
3857**示例:**
3858
3859  ```ts
3860  import { BusinessError } from '@ohos.base';
3861  dir.close((err: BusinessError) => {
3862    console.info("close dir successfully");
3863  });
3864  ```
3865
3866
3867### closeSync
3868
3869closeSync(): void
3870
3871用于关闭目录。目录被关闭后,Dir中持有的文件描述将被释放,后续将无法从Dir中读取目录项。
3872
3873> **说明**:
3874>
3875> 从API version 9开始废弃,请使用[fs.listFileSync](js-apis-file-fs.md#fslistfilesync)替代。
3876
3877**系统能力**:SystemCapability.FileManagement.File.FileIO
3878
3879**示例:**
3880
3881  ```ts
3882  dir.closeSync();
3883  ```
3884
3885
3886## Dirent
3887
3888在调用Dirent的方法前,需要先通过[dir.read()](#read)方法(同步或异步)来构建一个Dirent实例。
3889
3890> **说明**:
3891>
3892> 从API version 9开始废弃,请使用[fs.listFile](js-apis-file-fs.md#fslistfile)替代。
3893
3894**系统能力**:以下各项对应的系统能力均为SystemCapability.FileManagement.File.FileIO3895
3896### 属性
3897
3898| 名称   | 类型   | 可读   | 可写   | 说明      |
3899| ---- | ------ | ---- | ---- | ------- |
3900| name | string | 是    | 否    | 目录项的名称。 |
3901
3902
3903### isBlockDevice
3904
3905isBlockDevice(): boolean
3906
3907用于判断当前目录项是否是块特殊文件。一个块特殊文件只能以块为粒度进行访问,且访问的时候带缓存。
3908
3909> **说明**:
3910>
3911> 从API version 9开始废弃。
3912
3913**系统能力**:SystemCapability.FileManagement.File.FileIO
3914
3915**返回值:**
3916
3917  | 类型      | 说明               |
3918  | ------- | ---------------- |
3919  | boolean | 表示当前目录项是否是块特殊设备。 |
3920
3921**示例:**
3922
3923  ```ts
3924  let dir = fileio.opendirSync(pathDir);
3925  let isBLockDevice = dir.readSync().isBlockDevice();
3926  ```
3927
3928
3929### isCharacterDevice
3930
3931isCharacterDevice(): boolean
3932
3933用于判断当前目录项是否是字符特殊设备。一个字符特殊设备可进行随机访问,且访问的时候不带缓存。
3934
3935> **说明**:
3936>
3937> 从API version 9开始废弃。
3938
3939**系统能力**:SystemCapability.FileManagement.File.FileIO
3940
3941**返回值:**
3942
3943  | 类型      | 说明                |
3944  | ------- | ----------------- |
3945  | boolean | 表示当前目录项是否是字符特殊设备。 |
3946
3947**示例:**
3948
3949  ```ts
3950  let dir = fileio.opendirSync(pathDir);
3951  let isCharacterDevice = dir.readSync().isCharacterDevice();
3952  ```
3953
3954
3955### isDirectory
3956
3957isDirectory(): boolean
3958
3959用于判断当前目录项是否是目录。
3960
3961> **说明**:
3962>
3963> 从API version 9开始废弃。
3964
3965**系统能力**:SystemCapability.FileManagement.File.FileIO
3966
3967**返回值:**
3968
3969  | 类型      | 说明            |
3970  | ------- | ------------- |
3971  | boolean | 表示当前目录项是否是目录。 |
3972
3973**示例:**
3974
3975  ```ts
3976  let dir = fileio.opendirSync(pathDir);
3977  let isDirectory = dir.readSync().isDirectory();
3978  ```
3979
3980
3981### isFIFO
3982
3983isFIFO(): boolean
3984
3985用于判断当前目录项是否是命名管道(有时也称为FIFO)。命名管道通常用于进程间通信。
3986
3987> **说明**:
3988>
3989> 从API version 9开始废弃。
3990
3991**系统能力**:SystemCapability.FileManagement.File.FileIO
3992
3993**返回值:**
3994
3995  | 类型      | 说明              |
3996  | ------- | --------------- |
3997  | boolean | 表示当前目录项是否是FIFO。 |
3998
3999**示例:**
4000
4001  ```ts
4002  let dir = fileio.opendirSync(pathDir);
4003  let isFIFO = dir.readSync().isFIFO();
4004  ```
4005
4006
4007### isFile
4008
4009isFile(): boolean
4010
4011用于判断当前目录项是否是普通文件。
4012
4013> **说明**:
4014>
4015> 从API version 9开始废弃。
4016
4017**系统能力**:SystemCapability.FileManagement.File.FileIO
4018
4019**返回值:**
4020
4021  | 类型      | 说明              |
4022  | ------- | --------------- |
4023  | boolean | 表示当前目录项是否是普通文件。 |
4024
4025**示例:**
4026
4027  ```ts
4028  let dir = fileio.opendirSync(pathDir);
4029  let isFile = dir.readSync().isFile();
4030  ```
4031
4032
4033### isSocket
4034
4035isSocket(): boolean
4036
4037用于判断当前目录项是否是套接字。
4038
4039> **说明**:
4040>
4041> 从API version 9开始废弃。
4042
4043**系统能力**:SystemCapability.FileManagement.File.FileIO
4044
4045**返回值:**
4046
4047  | 类型      | 说明             |
4048  | ------- | -------------- |
4049  | boolean | 表示当前目录项是否是套接字。 |
4050
4051**示例:**
4052
4053  ```ts
4054  let dir = fileio.opendirSync(pathDir);
4055  let isSocket = dir.readSync().isSocket();
4056  ```
4057
4058
4059### isSymbolicLink
4060
4061isSymbolicLink(): boolean
4062
4063用于判断当前目录项是否是符号链接。
4064
4065> **说明**:
4066>
4067> 从API version 9开始废弃。
4068
4069**系统能力**:SystemCapability.FileManagement.File.FileIO
4070
4071**返回值:**
4072
4073  | 类型      | 说明              |
4074  | ------- | --------------- |
4075  | boolean | 表示当前目录项是否是符号链接。 |
4076
4077**示例:**
4078
4079  ```ts
4080  let dir = fileio.opendirSync(pathDir);
4081  let isSymbolicLink = dir.readSync().isSymbolicLink();
4082  ```
4083