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