js-apis-fileio.md 127.7 KB
Newer Older
Z
zengyawen 已提交
1
# 文件管理
Z
zengyawen 已提交
2

Z
zengyawen 已提交
3 4
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
Z
zengyawen 已提交
5

Z
zhangxingxia 已提交
6 7
该模块提供文件存储相关的常用功能:向应用程序提供用于IO的JS接口,包括用于管理文件的基本文件接口,用于管理目录的基本目录接口,用于获取文件信息的统计接口,用于流式读写文件的流式接口。

Z
zengyawen 已提交
8
## 导入模块
Z
zengyawen 已提交
9

Z
zhangxingxia 已提交
10
```js
Z
zengyawen 已提交
11 12 13
import fileio from '@ohos.fileio';
```

Z
zengyawen 已提交
14 15

## 使用说明
Z
zengyawen 已提交
16

Z
zengyawen 已提交
17
使用该功能模块对文件/目录进行操作前,需要先获取其应用沙箱路径,获取方式及其接口用法请参考:[Context模块的接口getOrCreateLocalDir](js-apis-Context.md)
Z
zengyawen 已提交
18

Z
zengyawen 已提交
19
“文件/目录应用沙箱路径”=“应用目录路径”+“文件/目录名”
Z
zengyawen 已提交
20

Z
zengyawen 已提交
21
通过上述接口获取到应用目录路径dir,文件名为“xxx.txt”,文件所在应用沙箱路径为:
Z
zengyawen 已提交
22

Z
zhangxingxia 已提交
23
```js
Z
zengyawen 已提交
24
let path = dir + "/xxx.txt";
Z
zengyawen 已提交
25 26
```

Z
zengyawen 已提交
27

Z
zengyawen 已提交
28 29
文件描述符fd:

Z
zengyawen 已提交
30

Z
zhangxingxia 已提交
31
```js
Z
zengyawen 已提交
32 33 34 35
let fd = fileio.openSync(path);
```


Z
zengyawen 已提交
36 37 38 39 40 41
## fileio.stat

stat(path: string): Promise<Stat>

以异步方法获取文件信息,使用promise形式返回结果。

42 43
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
44 45
**参数:**

Z
zengyawen 已提交
46 47 48
| 参数名 | 类型   | 必填 | 说明                       |
| ------ | ------ | ---- | -------------------------- |
| path   | string | 是   | 待获取文件的应用沙箱路径。 |
Z
zengyawen 已提交
49

Z
zhangxingxia 已提交
50 51
**返回值:**

H
HelloCrease 已提交
52 53
  | 类型                           | 说明         |
  | ---------------------------- | ---------- |
Z
zengyawen 已提交
54 55
  | Promise<[Stat](#stat)> | 表示文件的具体信息。 |

Z
zhangxingxia 已提交
56
**示例:**
Z
zhangxingxia 已提交
57 58 59 60 61 62
  ```js
  fileio.stat(path).then(function(stat){
      console.info("getFileInfo successfully:"+ JSON.stringify(stat));
  }).catch(function(err){
      console.info("getFileInfo failed with error:"+ err);
  });
Z
zengyawen 已提交
63 64 65 66 67 68 69 70 71
  ```


## fileio.stat

stat(path:string, callback:AsyncCallback<Stat>): void

以异步方法获取文件信息,使用callback形式返回结果。

72 73
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
74
**参数:**
Z
zengyawen 已提交
75 76 77 78
| 参数名   | 类型                               | 必填 | 说明                           |
| -------- | ---------------------------------- | ---- | ------------------------------ |
| path     | string                             | 是   | 待获取文件的应用沙箱路径。     |
| callback | AsyncCallback<[Stat](#stat)> | 是   | 异步获取文件的信息之后的回调。 |
Z
zengyawen 已提交
79

Z
zhangxingxia 已提交
80
**示例:**
Z
zhangxingxia 已提交
81
  ```js
Z
zengyawen 已提交
82
  fileio.stat(path, function (err, stat) {
Z
zhangxingxia 已提交
83
      // example code in Stat
Z
zengyawen 已提交
84 85 86 87
  });
  ```


Z
zengyawen 已提交
88 89 90
## fileio.statSync

statSync(path:string): Stat
Z
zengyawen 已提交
91 92 93

以同步方法获取文件的信息。

94 95
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
96
**参数:**
Z
zengyawen 已提交
97 98 99
| 参数名 | 类型   | 必填 | 说明                       |
| ------ | ------ | ---- | -------------------------- |
| path   | string | 是   | 待获取文件的应用沙箱路径。 |
Z
zengyawen 已提交
100 101


Z
zhangxingxia 已提交
102
**返回值:**
H
HelloCrease 已提交
103 104
  | 类型            | 说明         |
  | ------------- | ---------- |
Z
zengyawen 已提交
105 106
  | [Stat](#stat) | 表示文件的具体信息。 |

Z
zhangxingxia 已提交
107
**示例:**
Z
zhangxingxia 已提交
108
  ```js
Z
zengyawen 已提交
109
  let stat = fileio.statSync(path);
Z
zengyawen 已提交
110
  // example code in Stat
Z
zengyawen 已提交
111 112 113
  ```


Z
zengyawen 已提交
114
## fileio.opendir
Z
zengyawen 已提交
115

Z
zengyawen 已提交
116
opendir(path: string): Promise<Dir>
Z
zengyawen 已提交
117

Z
zengyawen 已提交
118
以异步方法打开文件目录,使用promise形式返回结果。
Z
zengyawen 已提交
119

120 121
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
122
**参数:**
Z
zengyawen 已提交
123 124 125
| 参数名 | 类型   | 必填 | 说明                           |
| ------ | ------ | ---- | ------------------------------ |
| path   | string | 是   | 待打开文件目录的应用沙箱路径。 |
Z
zengyawen 已提交
126

Z
zhangxingxia 已提交
127
**返回值:**
H
HelloCrease 已提交
128 129
  | 类型                         | 说明       |
  | -------------------------- | -------- |
Z
zengyawen 已提交
130
  | Promise<[Dir](#dir)> | 返回Dir对象。 |
Z
zengyawen 已提交
131

Z
zhangxingxia 已提交
132
**示例:**
Z
zhangxingxia 已提交
133 134 135 136 137 138
  ```js
  fileio.opendir(path).then(function(dir){
      console.info("opendir successfully:"+ JSON.stringify(dir));
  }).catch(function(err){
      console.info("opendir failed with error:"+ err);
  });
Z
zengyawen 已提交
139 140 141
  ```


Z
zengyawen 已提交
142
## fileio.opendir
Z
zengyawen 已提交
143

Z
zengyawen 已提交
144
opendir(path: string, callback: AsyncCallback<Dir>): void
Z
zengyawen 已提交
145

Z
zengyawen 已提交
146
以异步方法打开文件目录,使用callback形式返回结果。
Z
zengyawen 已提交
147

148 149
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
150 151
**参数:**

Z
zengyawen 已提交
152 153 154 155
| 参数名   | 类型                             | 必填 | 说明                           |
| -------- | -------------------------------- | ---- | ------------------------------ |
| path     | string                           | 是   | 待打开文件目录的应用沙箱路径。 |
| callback | AsyncCallback<[Dir](#dir)> | 是   | 异步打开文件目录之后的回调。   |
Z
zengyawen 已提交
156

Z
zhangxingxia 已提交
157
**示例:**
Z
zhangxingxia 已提交
158
  ```js
Z
zengyawen 已提交
159
  fileio.opendir(path, function (err, dir) { 
Z
zhangxingxia 已提交
160 161
      // example code in Dir struct
      // use read/readSync/close
Z
zengyawen 已提交
162
  });
Z
zengyawen 已提交
163 164 165
  ```


Z
zengyawen 已提交
166
## fileio.opendirSync
Z
zengyawen 已提交
167

Z
zengyawen 已提交
168 169 170
opendirSync(path: string): Dir

以同步方法打开文件目录。
Z
zengyawen 已提交
171

172 173
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zengyawen 已提交
174

Z
zhangxingxia 已提交
175 176
**参数:**

Z
zengyawen 已提交
177 178 179
| 参数名 | 类型   | 必填 | 说明                           |
| ------ | ------ | ---- | ------------------------------ |
| path   | string | 是   | 待打开文件目录的应用沙箱路径。 |
Z
zengyawen 已提交
180

Z
zhangxingxia 已提交
181
**返回值:**
H
HelloCrease 已提交
182 183
  | 类型          | 说明       |
  | ----------- | -------- |
Z
zengyawen 已提交
184
  | [Dir](#dir) | 返回Dir对象。 |
Z
zengyawen 已提交
185

Z
zhangxingxia 已提交
186
**示例:**
Z
zhangxingxia 已提交
187
  ```js
Z
zengyawen 已提交
188 189 190
  let dir = fileio.opendirSync(path);
  // example code in Dir struct
  // use read/readSync/close
Z
zengyawen 已提交
191 192 193
  ```


Z
zengyawen 已提交
194
## fileio.access
Z
zengyawen 已提交
195

Z
zengyawen 已提交
196
access(path: string, mode?: number): Promise<void>
Z
zengyawen 已提交
197

Z
zengyawen 已提交
198
以异步方法检查当前进程是否可访问某文件,使用promise形式返回结果。
Z
zengyawen 已提交
199

200 201
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
202 203
**参数:**

Z
zengyawen 已提交
204 205 206 207
| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| path   | string | 是   | 待访问文件的应用沙箱路径。                                   |
| mode   | number | 否   | 访问文件时的选项,可给定如下选项,以按位或的方式使用多个选项,默认给定0。<br/>确认当前进程是否具有对应权限:<br/>-&nbsp;0:确认文件是否存在。<br/>-&nbsp;1:确认当前进程是否具有可执行权限。<br/>-&nbsp;2:确认当前进程是否具有写权限。<br/>-&nbsp;4:确认当前进程是否具有读权限。 |
Z
zengyawen 已提交
208

Z
zhangxingxia 已提交
209
**返回值:**
H
HelloCrease 已提交
210 211
  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
Z
zengyawen 已提交
212
  | Promise&lt;void&gt; | Promise实例,用于异步获取结果。本调用将返回空值。 |
Z
zengyawen 已提交
213

Z
zhangxingxia 已提交
214
**示例:**
Z
zhangxingxia 已提交
215 216 217 218 219
  ```js
  fileio.access(path).then(function() {
      console.info("access successfully");
  }).catch(function(err){
      console.info("access failed with error:"+ err);
Z
zengyawen 已提交
220
  });
Z
zengyawen 已提交
221 222 223
  ```


Z
zengyawen 已提交
224
## fileio.access
Z
zengyawen 已提交
225

226
access(path: string, mode: number, callback: AsyncCallback&lt;void&gt;): void
Z
zengyawen 已提交
227

Z
zengyawen 已提交
228
以异步方法检查当前进程是否可访问某文件,使用callback形式返回结果。
Z
zengyawen 已提交
229

230 231
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
232
**参数:**
Z
zengyawen 已提交
233 234 235 236 237
| 参数名   | 类型                      | 必填 | 说明                                                         |
| -------- | ------------------------- | ---- | ------------------------------------------------------------ |
| path     | string                    | 是   | 待访问文件的应用沙箱路径。                                   |
| mode     | number                    | 否   | 访问文件时的选项,可给定如下选项,以按位或的方式使用多个选项,默认给定0。<br/>确认当前进程是否具有对应权限:<br/>-&nbsp;0:确认文件是否存在。<br/>-&nbsp;1:确认当前进程是否具有可执行权限。<br/>-&nbsp;2:确认当前进程是否具有写权限。<br/>-&nbsp;4:确认当前进程是否具有读权限。 |
| callback | AsyncCallback&lt;void&gt; | 是   | 异步检查当前进程是否可访问某文件之后的回调。                 |
Z
zengyawen 已提交
238

Z
zhangxingxia 已提交
239
**示例:**
Z
zhangxingxia 已提交
240
  ```js
Z
zengyawen 已提交
241
  fileio.access(path, function (err) {
Z
zhangxingxia 已提交
242
      // do something
Z
zengyawen 已提交
243
  });
Z
zengyawen 已提交
244 245 246
  ```


Z
zengyawen 已提交
247
## fileio.accessSync
Z
zengyawen 已提交
248

Z
zengyawen 已提交
249 250 251
accessSync(path: string, mode?: number): void

以同步方法检查当前进程是否可访问某文件。
Z
zengyawen 已提交
252

253
**系统能力**:SystemCapability.FileManagement.File.FileIO
Z
zengyawen 已提交
254

Z
zhangxingxia 已提交
255
**参数:**
Z
zengyawen 已提交
256 257 258 259
| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| path   | string | 是   | 待访问文件的应用沙箱路径。                                   |
| mode   | number | 否   | 访问文件时的选项,可给定如下选项,以按位或的方式使用多个选项,默认给定0。<br/>确认当前进程是否具有对应权限:<br/>-&nbsp;0:确认文件是否存在。<br/>-&nbsp;1:确认当前进程是否具有可执行权限。<br/>-&nbsp;2:确认当前进程是否具有写权限。<br/>-&nbsp;4:确认当前进程是否具有读权限。 |
Z
zengyawen 已提交
260

Z
zhangxingxia 已提交
261
**示例:**
Z
zhangxingxia 已提交
262
  ```js
Z
zengyawen 已提交
263 264
  try {
      fileio.accessSync(path);
Z
zhangxingxia 已提交
265 266
  } catch(err) {
      console.info("accessSync failed with error:"+ err);
Z
zengyawen 已提交
267
  }
Z
zengyawen 已提交
268 269 270
  ```


Z
zengyawen 已提交
271
## fileio.close<sup>7+</sup>
Z
zengyawen 已提交
272

Z
zengyawen 已提交
273
close(fd: number):Promise&lt;void&gt;
Z
zengyawen 已提交
274

Z
zengyawen 已提交
275
以异步方法关闭文件,使用promise形式返回结果。
Z
zengyawen 已提交
276

277 278
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
279
**参数:**
H
HelloCrease 已提交
280 281 282
  | 参数名  | 类型     | 必填   | 说明           |
  | ---- | ------ | ---- | ------------ |
  | fd   | number | 是    | 待关闭文件的文件描述符。 |
Z
zengyawen 已提交
283

Z
zhangxingxia 已提交
284
**返回值:**
H
HelloCrease 已提交
285 286
  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
Z
zengyawen 已提交
287
  | Promise&lt;void&gt; | Promise实例,用于异步获取结果。本调用将返回空值。 |
Z
zengyawen 已提交
288

Z
zhangxingxia 已提交
289
**示例:**
Z
zhangxingxia 已提交
290
  ```js
Z
zengyawen 已提交
291
  let fd = fileio.openSync(path);
Z
zhangxingxia 已提交
292 293 294 295 296
  fileio.close(fd).then(function(){
      console.info("close file successfully");
  }).catch(function(err){
      console.info("close file failed with error:"+ err);
  });
Z
zengyawen 已提交
297 298 299
  ```


Z
zengyawen 已提交
300
## fileio.close<sup>7+</sup>
Z
zengyawen 已提交
301

Z
zengyawen 已提交
302
close(fd: number, callback:AsyncCallback&lt;void&gt;): void
Z
zengyawen 已提交
303

Z
zengyawen 已提交
304
以异步方法关闭文件,使用callback形式返回结果。
Z
zengyawen 已提交
305

306 307
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
308
**参数:**
H
HelloCrease 已提交
309 310 311 312
  | 参数名      | 类型                        | 必填   | 说明           |
  | -------- | ------------------------- | ---- | ------------ |
  | fd       | number                    | 是    | 待关闭文件的文件描述符。 |
  | callback | AsyncCallback&lt;void&gt; | 是    | 异步关闭文件之后的回调。 |
Z
zengyawen 已提交
313

Z
zhangxingxia 已提交
314
**示例:**
Z
zhangxingxia 已提交
315
  ```js
Z
zengyawen 已提交
316
  let fd = fileio.openSync(path);
Z
zhangxingxia 已提交
317 318
  fileio.close(fd, function (err) {
      // do something
Z
zengyawen 已提交
319
  });
Z
zengyawen 已提交
320 321 322
  ```


Z
zengyawen 已提交
323
## fileio.closeSync
Z
zengyawen 已提交
324

Z
zengyawen 已提交
325
closeSync(fd: number): void
Z
zengyawen 已提交
326

Z
zengyawen 已提交
327
以同步方法关闭文件。
Z
zengyawen 已提交
328

329 330
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
331
**参数:**
H
HelloCrease 已提交
332 333 334
  | 参数名  | 类型     | 必填   | 说明           |
  | ---- | ------ | ---- | ------------ |
  | fd   | number | 是    | 待关闭文件的文件描述符。 |
Z
zengyawen 已提交
335

Z
zhangxingxia 已提交
336
**示例:**
Z
zhangxingxia 已提交
337
  ```js
Z
zengyawen 已提交
338
  fileio.closeSync(fd);
Z
zengyawen 已提交
339 340 341
  ```


Z
zengyawen 已提交
342
## fileio.close<sup>7+</sup>
Z
zengyawen 已提交
343

Z
zengyawen 已提交
344
close(): Promise&lt;void&gt;
Z
zengyawen 已提交
345

Z
zengyawen 已提交
346
以异步方法关闭文件流,使用promise形式返回结果。
Z
zengyawen 已提交
347

348 349
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
350
**返回值:**
H
HelloCrease 已提交
351 352
  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
Z
zengyawen 已提交
353
  | Promise&lt;void&gt; | Promise实例,用于异步获取结果。本调用将返回空值。 |
Z
zengyawen 已提交
354

Z
zhangxingxia 已提交
355
**示例:**
Z
zhangxingxia 已提交
356 357 358 359 360 361
  ```js
  fileio.close().then(function(){
      console.info("close file stream successfully");
  }).catch(function(err){
      console.info("close file stream failed with error:"+ err);
  });
Z
zengyawen 已提交
362 363 364
  ```


Z
zengyawen 已提交
365
## fileio.close<sup>7+</sup>
Z
zengyawen 已提交
366

Z
zengyawen 已提交
367
close(callback: AsyncCallback&lt;void&gt;): void
Z
zengyawen 已提交
368

Z
zengyawen 已提交
369
以异步方法关闭文件流,使用callback形式返回结果。
Z
zengyawen 已提交
370

371 372
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
373
**参数:**
H
HelloCrease 已提交
374 375 376
  | 参数名      | 类型                        | 必填   | 说明            |
  | -------- | ------------------------- | ---- | ------------- |
  | callback | AsyncCallback&lt;void&gt; | 是    | 异步关闭文件流之后的回调。 |
Z
zengyawen 已提交
377

Z
zhangxingxia 已提交
378
**示例:**
Z
zhangxingxia 已提交
379 380 381
  ```js
  fileio.close(function(err){
      // do something
Z
zengyawen 已提交
382
  });
Z
zengyawen 已提交
383 384 385
  ```


Z
zengyawen 已提交
386
## fileio.copyFile
Z
zengyawen 已提交
387

Z
zengyawen 已提交
388
copyFile(src:string | number, dest:string | number, mode?:number):Promise&lt;void&gt;
Z
zengyawen 已提交
389

Z
zengyawen 已提交
390
以异步方法复制文件,使用promise形式返回结果。
Z
zengyawen 已提交
391

392 393
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
394
**参数:**
H
HelloCrease 已提交
395 396 397 398 399
  | 参数名  | 类型                         | 必填   | 说明                                       |
  | ---- | -------------------------- | ---- | ---------------------------------------- |
  | src  | string&nbsp;\|&nbsp;number | 是    | 待复制文件的路径或待复制文件的描述符。                      |
  | dest | string&nbsp;\|&nbsp;number | 是    | 目标文件路径或目标文件描述符。                          |
  | mode | number                     | 否    | mode提供覆盖文件的选项,当前仅支持0,且默认为0。<br/>0:完全覆盖目标文件,未覆盖部分将被裁切掉。 |
Z
zengyawen 已提交
400

Z
zhangxingxia 已提交
401
**返回值:**
H
HelloCrease 已提交
402 403
  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
Z
zengyawen 已提交
404
  | Promise&lt;void&gt; | Promise实例,用于异步获取结果。本调用将返回空值。 |
Z
zengyawen 已提交
405

Z
zhangxingxia 已提交
406
**示例:**
Z
zhangxingxia 已提交
407 408 409 410 411 412
  ```js
  fileio.copyFile(src, dest).then(function(){
      console.info("copyFile successfully");
  }).catch(function(err){
      console.info("copyFile failed with error:"+ err);
  });
Z
zengyawen 已提交
413 414 415
  ```


Z
zengyawen 已提交
416
## fileio.copyFile
Z
zengyawen 已提交
417

418
copyFile(src: string | number, dest: string | number, mode: number, callback: AsyncCallback&lt;void&gt;): void
Z
zengyawen 已提交
419

Z
zengyawen 已提交
420
以异步方法复制文件,使用callback形式返回结果。
Z
zengyawen 已提交
421

422 423
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
424
**参数:**
H
HelloCrease 已提交
425 426 427 428 429 430
  | 参数名      | 类型                         | 必填   | 说明                                       |
  | -------- | -------------------------- | ---- | ---------------------------------------- |
  | src      | string&nbsp;\|&nbsp;number | 是    | 待复制文件的路径或待复制文件的描述符。                      |
  | dest     | string&nbsp;\|&nbsp;number | 是    | 目标文件路径或目标文件描述符。                          |
  | mode     | number                     | 否    | mode提供覆盖文件的选项,当前仅支持0,且默认为0。<br/>0:完全覆盖目标文件,未覆盖部分将被裁切掉。 |
  | callback | AsyncCallback&lt;void&gt;  | 是    | 异步复制文件之后的回调。                             |
Z
zengyawen 已提交
431

Z
zhangxingxia 已提交
432
**示例:**
Z
zhangxingxia 已提交
433 434 435
  ```js
  fileio.copyFile(src, dest, function (err) {
      // do something
Z
zengyawen 已提交
436
  });
Z
zengyawen 已提交
437 438 439
  ```


Z
zengyawen 已提交
440
## fileio.copyFileSync
Z
zengyawen 已提交
441

442
copyFileSync(src: string | number, dest: string | number, mode?: number): void
Z
zengyawen 已提交
443

Z
zengyawen 已提交
444
以同步方法复制文件。
Z
zengyawen 已提交
445

446 447
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
448
**参数:**
H
HelloCrease 已提交
449 450 451 452 453
  | 参数名  | 类型                         | 必填   | 说明                                       |
  | ---- | -------------------------- | ---- | ---------------------------------------- |
  | src  | string&nbsp;\|&nbsp;number | 是    | 待复制文件的路径或待复制文件的描述符。                      |
  | dest | string&nbsp;\|&nbsp;number | 是    | 目标文件路径或目标文件描述符。                          |
  | mode | number                     | 否    | mode提供覆盖文件的选项,当前仅支持0,且默认为0。<br/>0:完全覆盖目标文件,未覆盖部分将被裁切掉。 |
Z
zengyawen 已提交
454

Z
zhangxingxia 已提交
455
**示例:**
Z
zhangxingxia 已提交
456
  ```js
Z
zengyawen 已提交
457
  fileio.copyFileSync(src, dest);
Z
zengyawen 已提交
458 459 460
  ```


Z
zengyawen 已提交
461
## fileio.mkdir
Z
zengyawen 已提交
462

Z
zengyawen 已提交
463 464 465
mkdir(path:string, mode?: number): Promise&lt;void&gt;

以异步方法创建目录,使用promise形式返回结果。
Z
zengyawen 已提交
466

467
**系统能力**:SystemCapability.FileManagement.File.FileIO
Z
zengyawen 已提交
468

Z
zhangxingxia 已提交
469
**参数:**
Z
zengyawen 已提交
470 471 472 473
| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| path   | string | 是   | 待创建目录的应用沙箱路径。                                   |
| 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:其余用户具有可执行权限。 |
Z
zengyawen 已提交
474

Z
zhangxingxia 已提交
475
**返回值:**
H
HelloCrease 已提交
476 477
  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
Z
zengyawen 已提交
478
  | Promise&lt;void&gt; | Promise实例,用于异步获取结果。本调用将返回空值。 |
Z
zengyawen 已提交
479

Z
zhangxingxia 已提交
480
**示例:**
Z
zhangxingxia 已提交
481 482 483 484 485 486
  ```js
  fileio.mkdir(path).then(function() {
      console.info("mkdir successfully");
  }).catch(function (error){
      console.info("mkdir failed with error:"+ error);
  });
Z
zengyawen 已提交
487 488 489
  ```


Z
zengyawen 已提交
490
## fileio.mkdir
Z
zengyawen 已提交
491

492
mkdir(path: string, mode: number, callback: AsyncCallback&lt;void&gt;): void
Z
zengyawen 已提交
493

Z
zengyawen 已提交
494
以异步方法创建目录,使用callback形式返回结果。
Z
zengyawen 已提交
495

496 497
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
498
**参数:**
Z
zengyawen 已提交
499 500 501 502 503
| 参数名   | 类型                      | 必填 | 说明                                                         |
| -------- | ------------------------- | ---- | ------------------------------------------------------------ |
| path     | string                    | 是   | 待创建目录的应用沙箱路径。                                   |
| 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:其余用户具有可执行权限。 |
| callback | AsyncCallback&lt;void&gt; | 是   | 异步创建目录操作完成之后的回调。                             |
Z
zengyawen 已提交
504

Z
zhangxingxia 已提交
505
**示例:**
Z
zhangxingxia 已提交
506 507
  ```js
  fileio.mkdir(path, function(err) {
508
    console.info("mkdir successfully");
Z
zengyawen 已提交
509
  });
Z
zengyawen 已提交
510 511 512
  ```


Z
zengyawen 已提交
513
## fileio.mkdirSync
Z
zengyawen 已提交
514

515
mkdirSync(path: string, mode?: number): void
Z
zengyawen 已提交
516

Z
zengyawen 已提交
517
以同步方法创建目录。
Z
zengyawen 已提交
518

519 520
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
521
**参数:**
Z
zengyawen 已提交
522 523 524 525
| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| path   | string | 是   | 待创建目录的应用沙箱路径。                                   |
| 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:其余用户具有可执行权限。 |
Z
zengyawen 已提交
526

Z
zhangxingxia 已提交
527
**示例:**
Z
zhangxingxia 已提交
528
  ```js
Z
zengyawen 已提交
529 530 531 532 533 534 535 536 537 538
  fileio.mkdirSync(path);
  ```


## fileio.open<sup>7+</sup>

open(path: string, flags?: number, mode?: number): Promise&lt;number&gt;

以异步的方法打开文件,使用promise形式返回结果。

539 540
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
541
**参数:**
Z
zengyawen 已提交
542 543 544 545 546
| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| path   | string | 是   | 待打开文件的应用沙箱路径。                                   |
| 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的方式打开文件。 |
| 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:其余用户具有可执行权限。 |
Z
zengyawen 已提交
547

Z
zhangxingxia 已提交
548
**返回值:**
H
HelloCrease 已提交
549 550
  | 类型                    | 说明          |
  | --------------------- | ----------- |
Z
zengyawen 已提交
551
  | Promise&lt;number&gt; | 打开文件的文件描述符。 |
Z
zengyawen 已提交
552

Z
zhangxingxia 已提交
553
**示例:**
Z
zhangxingxia 已提交
554 555 556 557 558 559
  ```js
  fileio.open(path, 0o1, 0o0200).then(function(number){
      console.info("open file successfully");
  }).catch(function(error){
      console.info("open file failed with error:"+ err);
  });
Z
zengyawen 已提交
560 561 562
  ```


Z
zengyawen 已提交
563
## fileio.open<sup>7+</sup>
Z
zengyawen 已提交
564

Z
zengyawen 已提交
565
open(path: string, flags: number, mode: number, callback: AsyncCallback&lt;number&gt;): void
Z
zengyawen 已提交
566

Z
zengyawen 已提交
567
以异步的方法打开文件,使用callback形式返回结果。
Z
zengyawen 已提交
568

569 570
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
571
**参数:**
Z
zengyawen 已提交
572 573 574 575 576 577
| 参数名   | 类型                            | 必填 | 说明                                                         |
| -------- | ------------------------------- | ---- | ------------------------------------------------------------ |
| path     | string                          | 是   | 待打开文件的应用沙箱路径。                                   |
| 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的方式打开文件。 |
| 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:其余用户具有可执行权限。 |
| callback | AsyncCallback&nbsp;&lt;void&gt; | 是   | 异步打开文件之后的回调。                                     |
Z
zengyawen 已提交
578

Z
zhangxingxia 已提交
579
**示例:**
Z
zhangxingxia 已提交
580 581 582
  ```js
  fileio.open(path, 0, function(err, fd) {
      // do something
Z
zengyawen 已提交
583
  });
Z
zengyawen 已提交
584 585 586
  ```


Z
zengyawen 已提交
587
## fileio.openSync
Z
zengyawen 已提交
588

Z
zengyawen 已提交
589
openSync(path:string, flags?:number, mode?:number): number
Z
zengyawen 已提交
590

Z
zengyawen 已提交
591
以同步方法打开文件。
Z
zengyawen 已提交
592

593 594
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
595
**参数:**
Z
zengyawen 已提交
596 597 598 599 600
| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| path   | string | 是   | 待打开文件的应用沙箱路径。                                   |
| 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的方式打开文件。 |
| 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:其余用户具有可执行权限。<br/>创建出的文件权限受umask影响,umask随进程启动确定,其修改当前不开放。 |
Z
zengyawen 已提交
601

Z
zhangxingxia 已提交
602
**返回值:**
H
HelloCrease 已提交
603 604
  | 类型     | 说明          |
  | ------ | ----------- |
Z
zengyawen 已提交
605
  | number | 打开文件的文件描述符。 |
Z
zengyawen 已提交
606

Z
zhangxingxia 已提交
607
**示例:**
Z
zhangxingxia 已提交
608
  ```js
Z
zengyawen 已提交
609
  let fd = fileio.openSync(path);
Z
zengyawen 已提交
610 611 612
  ```


Z
zengyawen 已提交
613
## fileio.read
Z
zengyawen 已提交
614

615 616 617 618 619
read(fd: number, buffer: ArrayBuffer, options?: {
    offset?: number;
    length?: number;
    position?: number;
}): Promise&lt;ReadOut&gt;
Z
zengyawen 已提交
620

Z
zengyawen 已提交
621
以异步方法从文件读取数据,使用promise形式返回结果。
Z
zengyawen 已提交
622

623 624
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
625 626 627 628 629 630 631 632
**参数:**
| 参数名  | 类型        | 必填 | 说明                                                         |
| ------- | ----------- | ---- | ------------------------------------------------------------ |
| fd      | number      | 是   | 待读取文件的文件描述符。                                     |
| buffer  | ArrayBuffer | 是   | 用于保存读取到的文件数据的缓冲区。                           |
| options | Object      | 否   | 支持如下选项:<br/>-&nbsp;offset,number类型,表示将数据读取到缓冲区的位置,即相对于缓冲区首地址的偏移。可选,默认为0。<br/>-&nbsp;length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度减去偏移长度。<br/>-&nbsp;position,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读。<br/>约束:offset+length<=buffer.size。 |

**返回值:**
Z
zengyawen 已提交
633

H
HelloCrease 已提交
634 635
  | 类型                                 | 说明     |
  | ---------------------------------- | ------ |
636
  | Promise&lt;[ReadOut](#readout)&gt; | 读取的结果。 |
Z
zengyawen 已提交
637

Z
zhangxingxia 已提交
638
**示例:**
Z
zhangxingxia 已提交
639
  ```js
Z
zengyawen 已提交
640 641
  let fd = fileio.openSync(path, 0o2);
  let buf = new ArrayBuffer(4096);
Z
zhangxingxia 已提交
642
  fileio.read(fd, buf).then(function(readout){
643 644
      console.info("read file data successfully");
      console.log(String.fromCharCode.apply(null, new Uint8Array(readOut.buffer)));
Z
zhangxingxia 已提交
645 646 647
  }).catch(function(error){
      console.info("read file data failed with error:"+ error);
  });
Z
zengyawen 已提交
648 649 650
  ```


Z
zengyawen 已提交
651
## fileio.read
Z
zengyawen 已提交
652

653 654 655 656 657
read(fd: number, buffer: ArrayBuffer, options: {
    offset?: number;
    length?: number;
    position?: number;
}, callback: AsyncCallback&lt;ReadOut&gt;): void
Z
zengyawen 已提交
658

Z
zengyawen 已提交
659
以异步方法从文件读取数据,使用callback形式返回结果。
Z
zengyawen 已提交
660

661 662
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
663
**参数:**
H
HelloCrease 已提交
664 665 666 667
  | 参数名      | 类型                                       | 必填   | 说明                                       |
  | -------- | ---------------------------------------- | ---- | ---------------------------------------- |
  | fd       | number                                   | 是    | 待读取文件的文件描述符。                             |
  | buffer   | ArrayBuffer                              | 是    | 用于保存读取到的文件数据的缓冲区。                        |
Z
zhangxingxia 已提交
668
  | options  | Object                                   | 否    | 支持如下选项:<br/>-&nbsp;offset,number类型,表示将数据读取到缓冲区的位置,即相对于缓冲区首地址的偏移。可选,默认为0。<br/>-&nbsp;length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度减去偏移长度。<br/>-&nbsp;position,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读。<br/>约束:offset+length<=buffer.size。  |
H
HelloCrease 已提交
669
  | callback | AsyncCallback&lt;[ReadOut](#readout)&gt; | 是    | 异步读取数据之后的回调。                             |
Z
zengyawen 已提交
670

Z
zhangxingxia 已提交
671
**示例:**
Z
zhangxingxia 已提交
672
  ```js
Z
zengyawen 已提交
673 674
  let fd = fileio.openSync(path, 0o2);
  let buf = new ArrayBuffer(4096);
Z
zhangxingxia 已提交
675
  fileio.read(fd, buf, function (err, readOut) {
676 677 678
      if (readOut) {
          console.info("read file data successfully");
          console.log(String.fromCharCode.apply(null, new Uint8Array(readOut.buffer)));
Z
zengyawen 已提交
679 680
      }
  });
Z
zengyawen 已提交
681
  ```
Z
zengyawen 已提交
682 683


Z
zengyawen 已提交
684
## fileio.readSync
Z
zengyawen 已提交
685

686 687 688 689 690
readSync(fd: number, buffer: ArrayBuffer, options?: {
    offset?: number;
    length?: number;
    position?: number;
}): number
Z
zengyawen 已提交
691 692 693

以同步方法从文件读取数据。

694 695
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
696
**参数:**
H
HelloCrease 已提交
697 698 699 700
  | 参数名     | 类型          | 必填   | 说明                                       |
  | ------- | ----------- | ---- | ---------------------------------------- |
  | fd      | number      | 是    | 待读取文件的文件描述符。                             |
  | buffer  | ArrayBuffer | 是    | 用于保存读取到的文件数据的缓冲区。                        |
Z
zhangxingxia 已提交
701
  | options | Object      | 否    | 支持如下选项:<br/>-&nbsp;offset,number类型,表示将数据读取到缓冲区的位置,即相对于缓冲区首地址的偏移。可选,默认为0。<br/>-&nbsp;length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度减去偏移长度。<br/>-&nbsp;position,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读。<br/>约束:offset+length<=buffer.size。  |
Z
zengyawen 已提交
702

Z
zhangxingxia 已提交
703
**返回值:**
H
HelloCrease 已提交
704 705
  | 类型     | 说明       |
  | ------ | -------- |
Z
zengyawen 已提交
706 707
  | number | 实际读取的长度。 |

Z
zhangxingxia 已提交
708
**示例:**
Z
zhangxingxia 已提交
709
  ```js
Z
zengyawen 已提交
710 711 712 713 714 715 716 717 718 719 720 721
  let fd = fileio.openSync(path, 0o2);
  let buf = new ArrayBuffer(4096);
  let num = fileio.readSync(fd, buf);
  ```


## fileio.rmdir<sup>7+</sup>

rmdir(path: string): Promise&lt;void&gt;

以异步方法删除目录,使用promise形式返回结果。

722 723
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
724
**参数:**
Z
zengyawen 已提交
725 726 727
| 参数名 | 类型   | 必填 | 说明                       |
| ------ | ------ | ---- | -------------------------- |
| path   | string | 是   | 待删除目录的应用沙箱路径。 |
Z
zengyawen 已提交
728

Z
zhangxingxia 已提交
729
**返回值:**
H
HelloCrease 已提交
730 731
  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
Z
zengyawen 已提交
732 733
  | Promise&lt;void&gt; | Promise实例,用于异步获取结果。本调用将返回空值。 |

Z
zhangxingxia 已提交
734
**示例:**
Z
zhangxingxia 已提交
735 736 737 738 739
  ```js
  fileio.rmdir(path).then(function() {
      console.info("rmdir successfully");
  }).catch(function(err){
      console.info("rmdir failed with error:"+ err);
Z
zengyawen 已提交
740 741 742 743 744 745 746 747 748 749
  });
  ```


## fileio.rmdir<sup>7+</sup>

rmdir(path: string, callback:AsyncCallback&lt;void&gt;): void

以异步方法删除目录,使用callback形式返回结果。

750 751
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
752
**参数:**
Z
zengyawen 已提交
753 754 755 756
| 参数名   | 类型                      | 必填 | 说明                       |
| -------- | ------------------------- | ---- | -------------------------- |
| path     | string                    | 是   | 待删除目录的应用沙箱路径。 |
| callback | AsyncCallback&lt;void&gt; | 是   | 异步删除目录之后的回调。   |
Z
zengyawen 已提交
757

Z
zhangxingxia 已提交
758
**示例:**
Z
zhangxingxia 已提交
759 760 761
  ```js
  fileio.rmdir(path, function(err){
      // do something
762
      console.info("rmdir successfully");
Z
zengyawen 已提交
763 764 765 766
  });
  ```


767
## fileio.rmdirSync<sup>7+</sup>
Z
zengyawen 已提交
768

769
rmdirSync(path: string): void
Z
zengyawen 已提交
770 771 772

以同步方法删除目录。

773 774
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
775
**参数:**
Z
zengyawen 已提交
776 777 778
| 参数名 | 类型   | 必填 | 说明                       |
| ------ | ------ | ---- | -------------------------- |
| path   | string | 是   | 待删除目录的应用沙箱路径。 |
Z
zengyawen 已提交
779

Z
zhangxingxia 已提交
780
**示例:**
Z
zhangxingxia 已提交
781
  ```js
Z
zengyawen 已提交
782 783 784 785 786 787 788 789 790 791
  fileio.rmdirSync(path);
  ```


## fileio.unlink

unlink(path:string): Promise&lt;void&gt;

以异步方法删除文件,使用promise形式返回结果。

792 793
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
794
**参数:**
Z
zengyawen 已提交
795 796 797
| 参数名 | 类型   | 必填 | 说明                       |
| ------ | ------ | ---- | -------------------------- |
| path   | string | 是   | 待删除文件的应用沙箱路径。 |
Z
zengyawen 已提交
798

Z
zhangxingxia 已提交
799
**返回值:**
H
HelloCrease 已提交
800 801
  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
Z
zengyawen 已提交
802 803
  | Promise&lt;void&gt; | Promise实例,用于异步获取结果。本调用将返回空值。 |

Z
zhangxingxia 已提交
804
**示例:**
Z
zhangxingxia 已提交
805 806 807 808 809 810
  ```js
  fileio.unlink(path).then(function(){
      console.info("remove file successfully");
  }).catch(function(error){
      console.info("remove file failed with error:"+ error);
  });
Z
zengyawen 已提交
811 812 813 814 815 816 817 818 819
  ```


## fileio.unlink

unlink(path:string, callback:AsyncCallback&lt;void&gt;): void

以异步方法删除文件,使用callback形式返回结果。

820 821
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
822
**参数:**
Z
zengyawen 已提交
823 824 825 826
| 参数名   | 类型                      | 必填 | 说明                       |
| -------- | ------------------------- | ---- | -------------------------- |
| path     | string                    | 是   | 待删除文件的应用沙箱路径。 |
| callback | AsyncCallback&lt;void&gt; | 是   | 异步删除文件之后的回调。   |
Z
zengyawen 已提交
827

Z
zhangxingxia 已提交
828
**示例:**
Z
zhangxingxia 已提交
829 830
  ```js
  fileio.unlink(path, function(err) {
831
      console.info("remove file successfully");
Z
zengyawen 已提交
832 833 834 835 836 837 838 839 840 841
  });
  ```


## fileio.unlinkSync

unlinkSync(path: string): void

以同步方法删除文件。

842 843
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
844
**参数:**
Z
zengyawen 已提交
845 846 847
| 参数名 | 类型   | 必填 | 说明                       |
| ------ | ------ | ---- | -------------------------- |
| path   | string | 是   | 待删除文件的应用沙箱路径。 |
Z
zengyawen 已提交
848

Z
zhangxingxia 已提交
849
**示例:**
Z
zhangxingxia 已提交
850
  ```js
Z
zengyawen 已提交
851 852 853 854 855 856
  fileio.unlinkSync(path);
  ```


## fileio.write

857 858 859 860 861 862
write(fd: number, buffer: ArrayBuffer | string, options?: {
    offset?: number;
    length?: number;
    position?: number;
    encoding?: string;
}): Promise&lt;number&gt;
Z
zengyawen 已提交
863 864 865

以异步方法将数据写入文件,使用promise形式返回结果。

866 867
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
868
**参数:**
H
HelloCrease 已提交
869 870 871 872
  | 参数名     | 类型                              | 必填   | 说明                                       |
  | ------- | ------------------------------- | ---- | ---------------------------------------- |
  | fd      | number                          | 是    | 待写入文件的文件描述符。                             |
  | buffer  | ArrayBuffer&nbsp;\|&nbsp;string | 是    | 待写入文件的数据,可来自缓冲区或字符串。                     |
Z
zhangxingxia 已提交
873
  | 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。 |
Z
zengyawen 已提交
874

Z
zhangxingxia 已提交
875
**返回值:**
H
HelloCrease 已提交
876 877
  | 类型                    | 说明       |
  | --------------------- | -------- |
Z
zengyawen 已提交
878 879
  | Promise&lt;number&gt; | 实际写入的长度。 |

Z
zhangxingxia 已提交
880
**示例:**
Z
zhangxingxia 已提交
881
  ```js
Z
zengyawen 已提交
882
  let fd = fileio.openSync(fpath, 0o100 | 0o2, 0o666);
Z
zhangxingxia 已提交
883
  fileio.write(fd, "hello, world").then(function(number){
884
       console.info("write data to file successfully and size is:"+ number);
Z
zhangxingxia 已提交
885 886 887
  }).catch(function(err){
      console.info("write data to file failed with error:"+ err);
  });
Z
zengyawen 已提交
888 889 890 891 892
  ```


## fileio.write

893 894 895 896 897 898
write(fd: number, buffer: ArrayBuffer | string, options: {
    offset?: number;
    length?: number;
    position?: number;
    encoding?: string;
}, callback: AsyncCallback&lt;number&gt;): void
Z
zengyawen 已提交
899 900 901

以异步方法将数据写入文件,使用callback形式返回结果。

902 903
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
904
**参数:**
H
HelloCrease 已提交
905 906 907 908
  | 参数名      | 类型                              | 必填   | 说明                                       |
  | -------- | ------------------------------- | ---- | ---------------------------------------- |
  | fd       | number                          | 是    | 待写入文件的文件描述符。                             |
  | buffer   | ArrayBuffer&nbsp;\|&nbsp;string | 是    | 待写入文件的数据,可来自缓冲区或字符串。                     |
Z
zhangxingxia 已提交
909
  | 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。 |
H
HelloCrease 已提交
910
  | callback | AsyncCallback&lt;number&gt;     | 是    | 异步将数据写入完成后执行的回调函数。                       |
Z
zengyawen 已提交
911

Z
zhangxingxia 已提交
912
**示例:**
Z
zhangxingxia 已提交
913
  ```js
Z
zengyawen 已提交
914 915
  let fd = fileio.openSync(path, 0o100 | 0o2, 0o666);
  fileio.write(fd, "hello, world", function (err, bytesWritten) {
916 917
      if (bytesWritten) {
         console.info("write data to file successfully and size is:"+ bytesWritten);
Z
zengyawen 已提交
918 919 920 921 922 923 924
      }
  });
  ```


## fileio.writeSync

925 926 927 928 929 930
writeSync(fd: number, buffer: ArrayBuffer | string, options?: {
    offset?: number;
    length?: number;
    position?: number;
    encoding?: string;
}): number
Z
zengyawen 已提交
931 932 933

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

934 935
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
936
**参数:**
H
HelloCrease 已提交
937 938 939 940
  | 参数名     | 类型                              | 必填   | 说明                                       |
  | ------- | ------------------------------- | ---- | ---------------------------------------- |
  | fd      | number                          | 是    | 待写入文件的文件描述符。                             |
  | buffer  | ArrayBuffer&nbsp;\|&nbsp;string | 是    | 待写入文件的数据,可来自缓冲区或字符串。                     |
Z
zhangxingxia 已提交
941
  | 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。 |
Z
zengyawen 已提交
942

Z
zhangxingxia 已提交
943
**返回值:**
H
HelloCrease 已提交
944 945
  | 类型     | 说明       |
  | ------ | -------- |
Z
zengyawen 已提交
946 947
  | number | 实际写入的长度。 |

Z
zhangxingxia 已提交
948
**示例:**
Z
zhangxingxia 已提交
949
  ```js
Z
zengyawen 已提交
950 951 952 953 954 955 956 957 958 959 960
  let fd = fileio.openSync(path, 0o100 | 0o2, 0o666);
  let num = fileio.writeSync(fd, "hello, world");
  ```


## fileio.hash

hash(path: string, algorithm: string): Promise&lt;string&gt;

以异步方法计算文件的哈希值,使用promise形式返回结果。

961 962
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
963
**参数:**
Z
zengyawen 已提交
964 965 966 967
| 参数名    | 类型   | 必填 | 说明                                                         |
| --------- | ------ | ---- | ------------------------------------------------------------ |
| path      | string | 是   | 待计算哈希值文件的应用沙箱路径。                             |
| algorithm | string | 是   | 哈希计算采用的算法。可选&nbsp;"md5"、"sha1"&nbsp;&nbsp;"sha256"。建议采用安全强度更高的&nbsp;"sha256"。 |
Z
zengyawen 已提交
968

Z
zhangxingxia 已提交
969
**返回值:**
H
HelloCrease 已提交
970 971
  | 类型                    | 说明                         |
  | --------------------- | -------------------------- |
Z
zengyawen 已提交
972 973
  | Promise&lt;string&gt; | 文件的哈希值。表示为十六进制数字串,所有字母均大写。 |

Z
zhangxingxia 已提交
974
**示例:**
Z
zhangxingxia 已提交
975 976 977 978 979 980
  ```js
  fileio.hash(path, "sha256").then(function(str){
      console.info("calculate file hash successfully:"+ str);
  }).catch(function(error){
      console.info("calculate file hash failed with error:"+ err);
  });
Z
zengyawen 已提交
981 982 983 984 985
  ```


## fileio.hash

986
hash(path: string, algorithm: string, callback: AsyncCallback&lt;string&gt;): void
Z
zengyawen 已提交
987 988 989

以异步方法计算文件的哈希值,使用callback形式返回结果。

990 991
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
992
**参数:**
Z
zengyawen 已提交
993 994 995 996 997
| 参数名    | 类型                        | 必填 | 说明                                                         |
| --------- | --------------------------- | ---- | ------------------------------------------------------------ |
| path      | string                      | 是   | 待计算哈希值文件的应用沙箱路径。                             |
| algorithm | string                      | 是   | 哈希计算采用的算法。可选&nbsp;"md5"、"sha1"&nbsp;&nbsp;"sha256"。建议采用安全强度更高的&nbsp;"sha256"。 |
| callback  | AsyncCallback&lt;string&gt; | 是   | 异步计算文件哈希操之后的回调函数(其中给定文件哈希值表示为十六进制数字串,所有字母均大写)。 |
Z
zengyawen 已提交
998

Z
zhangxingxia 已提交
999
**示例:**
Z
zhangxingxia 已提交
1000
  ```js
Z
zengyawen 已提交
1001
  fileio.hash(fpath, "sha256", function(err, hashStr) {
1002 1003
      if (hashStr) {
          console.info("calculate file hash successfully:"+ hashStr);
Z
zengyawen 已提交
1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014
      }
  });
  ```


## fileio.chmod<sup>7+</sup>

chmod(path: string, mode: number):Promise&lt;void&gt;

以异步方法基于文件路径改变文件权限,使用promise形式返回结果。

1015 1016
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1017
**参数:**
Z
zengyawen 已提交
1018 1019 1020 1021
| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| path   | string | 是   | 待改变文件权限的应用沙箱路径。                               |
| 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:其余用户具有可执行权限。 |
Z
zengyawen 已提交
1022

Z
zhangxingxia 已提交
1023
**返回值:**
H
HelloCrease 已提交
1024 1025
  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
Z
zengyawen 已提交
1026 1027
  | Promise&lt;void&gt; | Promise实例,用于异步获取结果。本调用将返回空值。 |

Z
zhangxingxia 已提交
1028
**示例:**
Z
zhangxingxia 已提交
1029 1030 1031 1032 1033
  ```js
  fileio.chmod(path, mode).then(function() {
      console.info("chmod successfully");
  }).catch(function(err){
      console.info("chmod failed with error:"+ err);
Z
zengyawen 已提交
1034 1035 1036 1037 1038 1039 1040 1041 1042 1043
  });
  ```


## fileio.chmod<sup>7+</sup>

chmod(path: string, mode: number, callback: AsyncCallback&lt;void&gt;): void

以异步方法基于文件路径改变文件权限,使用callback形式返回结果。

1044 1045
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1046
**参数:**
Z
zengyawen 已提交
1047 1048 1049 1050 1051
| 参数名   | 类型                      | 必填 | 说明                                                         |
| -------- | ------------------------- | ---- | ------------------------------------------------------------ |
| path     | string                    | 是   | 待改变文件权限的应用沙箱路径。                               |
| 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:其余用户具有可执行权限。 |
| callback | AsyncCallback&lt;void&gt; | 是   | 异步改变文件权限之后的回调。                                 |
Z
zengyawen 已提交
1052

Z
zhangxingxia 已提交
1053
**示例:**
Z
zhangxingxia 已提交
1054 1055 1056
  ```js
  fileio.chmod(path, mode, function (err) {
      // do something
Z
zengyawen 已提交
1057 1058 1059 1060 1061 1062 1063 1064 1065 1066
  });
  ```


## fileio.chmodSync<sup>7+</sup>

chmodSync(path: string, mode: number): void

以同步方法基于文件路径改变文件权限。

1067 1068
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1069
**参数:**
Z
zengyawen 已提交
1070 1071 1072 1073
| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| path   | string | 是   | 待改变文件权限的应用沙箱路径。                               |
| 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:其余用户具有可执行权限。 |
Z
zengyawen 已提交
1074

Z
zhangxingxia 已提交
1075
**示例:**
Z
zhangxingxia 已提交
1076
  ```js
Z
zengyawen 已提交
1077 1078 1079 1080 1081 1082 1083 1084 1085 1086
  fileio.chmodSync(fpath, mode);
  ```


## fileio.fstat<sup>7+</sup>

fstat(fd: number): Promise&lt;Stat&gt;

以异步方法基于文件描述符获取文件状态信息,使用promise形式返回结果。

1087 1088
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1089
**参数:**
H
HelloCrease 已提交
1090 1091 1092
  | 参数名  | 类型     | 必填   | 说明           |
  | ---- | ------ | ---- | ------------ |
  | fd   | number | 是    | 待获取文件的文件描述符。 |
Z
zengyawen 已提交
1093

Z
zhangxingxia 已提交
1094
**返回值:**
H
HelloCrease 已提交
1095 1096
  | 类型                           | 说明         |
  | ---------------------------- | ---------- |
Z
zengyawen 已提交
1097 1098
  | Promise&lt;[Stat](#stat)&gt; | 表示文件的具体信息。 |

Z
zhangxingxia 已提交
1099
**示例:**
Z
zhangxingxia 已提交
1100 1101 1102 1103 1104 1105
  ```js
  fileio.fstat(fd).then(function(stat){
      console.info("fstat successfully:"+ JSON.stringify(stat));
  }).catch(function(err){
      console.info("fstat failed with error:"+ err);
  });
Z
zengyawen 已提交
1106 1107 1108 1109 1110 1111 1112 1113 1114
  ```


## fileio.fstat<sup>7+</sup>

fstat(fd: number, callback: AsyncCallback&lt;Stat&gt;): void

以异步方法基于文件描述符获取文件状态信息,使用callback形式返回结果。

1115 1116
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1117
**参数:**
H
HelloCrease 已提交
1118 1119 1120 1121
  | 参数名      | 类型                                 | 必填   | 说明               |
  | -------- | ---------------------------------- | ---- | ---------------- |
  | fd       | number                             | 是    | 待获取文件的文件描述符。     |
  | callback | AsyncCallback&lt;[Stat](#stat)&gt; | 是    | 异步获取文件状态信息之后的回调。 |
Z
zengyawen 已提交
1122

Z
zhangxingxia 已提交
1123
**示例:**
Z
zhangxingxia 已提交
1124
  ```js
Z
zengyawen 已提交
1125
  let fd = fileio.openSync(path);
Z
zhangxingxia 已提交
1126 1127
  fileio.fstat(fd, function (err) {
      // do something
Z
zengyawen 已提交
1128 1129 1130 1131 1132 1133 1134 1135 1136 1137
  });
  ```


## fileio.fstatSync<sup>7+</sup>

fstatSync(fd: number): Stat

以同步方法基于文件描述符获取文件状态信息。

1138 1139
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1140
**参数:**
H
HelloCrease 已提交
1141 1142 1143
  | 参数名  | 类型     | 必填   | 说明           |
  | ---- | ------ | ---- | ------------ |
  | fd   | number | 是    | 待获取文件的文件描述符。 |
Z
zengyawen 已提交
1144

Z
zhangxingxia 已提交
1145
**返回值:**
H
HelloCrease 已提交
1146 1147
  | 类型            | 说明         |
  | ------------- | ---------- |
Z
zengyawen 已提交
1148 1149
  | [Stat](#stat) | 表示文件的具体信息。 |

Z
zhangxingxia 已提交
1150
**示例:**
Z
zhangxingxia 已提交
1151
  ```js
Z
zengyawen 已提交
1152 1153 1154 1155 1156 1157 1158
  let fd = fileio.openSync(path);
  let stat = fileio.fstatSync(fd);
  ```


## fileio.ftruncate<sup>7+</sup>

1159
ftruncate(fd: number, len?: number): Promise&lt;void&gt;
Z
zengyawen 已提交
1160 1161 1162

以异步方法基于文件描述符截断文件,使用promise形式返回结果。

1163 1164
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1165
**参数:**
H
HelloCrease 已提交
1166 1167 1168 1169
  | 参数名  | 类型     | 必填   | 说明               |
  | ---- | ------ | ---- | ---------------- |
  | fd   | number | 是    | 待截断文件的文件描述符。     |
  | len  | number | 是    | 文件截断后的长度,以字节为单位。 |
Z
zengyawen 已提交
1170

Z
zhangxingxia 已提交
1171
**返回值:**
H
HelloCrease 已提交
1172 1173
  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
Z
zengyawen 已提交
1174 1175
  | Promise&lt;void&gt; | Promise实例,用于异步获取结果。本调用将返回空值。 |

Z
zhangxingxia 已提交
1176
**示例:**
Z
zhangxingxia 已提交
1177
  ```js
Z
zengyawen 已提交
1178
  let fd = fileio.openSync(path);
Z
zhangxingxia 已提交
1179 1180 1181 1182
  fileio.ftruncate(fd, 5).then(function(err) {    
      console.info("truncate file successfully");
  }).catch(function(err){
      console.info("truncate file failed with error:"+ err);
Z
zengyawen 已提交
1183 1184 1185 1186 1187 1188 1189 1190 1191 1192
  });
  ```


## fileio.ftruncate<sup>7+</sup>

ftruncate(fd: number, len: number, callback:AsyncCallback&lt;void&gt;): void

以异步方法基于文件描述符截断文件,使用callback形式返回结果。

1193 1194
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1195
**参数:**
H
HelloCrease 已提交
1196 1197 1198 1199 1200
  | 参数名      | 类型                        | 必填   | 说明               |
  | -------- | ------------------------- | ---- | ---------------- |
  | fd       | number                    | 是    | 待截断文件的文件描述符。     |
  | len      | number                    | 是    | 文件截断后的长度,以字节为单位。 |
  | callback | AsyncCallback&lt;void&gt; | 是    | 异步截断文件的信息之后的回调。  |
Z
zengyawen 已提交
1201

Z
zhangxingxia 已提交
1202
**示例:**
Z
zhangxingxia 已提交
1203 1204 1205
  ```js
  fileio.ftruncate(fd, len, function(err){
      // do something
Z
zengyawen 已提交
1206 1207 1208 1209 1210 1211 1212 1213 1214 1215
  });
  ```


## fileio.ftruncateSync<sup>7+</sup>

ftruncateSync(fd: number, len?: number): void

以同步方法基于文件描述符截断文件。

1216 1217
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1218
**参数:**
H
HelloCrease 已提交
1219 1220 1221 1222
  | 参数名  | 类型     | 必填   | 说明               |
  | ---- | ------ | ---- | ---------------- |
  | fd   | number | 是    | 待截断文件的文件描述符。     |
  | len  | number | 否    | 文件截断后的长度,以字节为单位。 |
Z
zengyawen 已提交
1223

Z
zhangxingxia 已提交
1224
**示例:**
Z
zhangxingxia 已提交
1225
  ```js
Z
zhangxingxia 已提交
1226
  fileio.ftruncateSync(fd, len);
Z
zengyawen 已提交
1227 1228 1229 1230 1231
  ```


## fileio.truncate<sup>7+</sup>

1232
truncate(path: string, len?: number): Promise&lt;void&gt;
Z
zengyawen 已提交
1233 1234 1235

以异步方法基于文件路径截断文件,使用promise形式返回结果。

1236 1237
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1238
**参数:**
Z
zengyawen 已提交
1239 1240 1241 1242
| 参数名 | 类型   | 必填 | 说明                             |
| ------ | ------ | ---- | -------------------------------- |
| path   | string | 是   | 待截断文件的应用沙箱路径。       |
| len    | number | 是   | 文件截断后的长度,以字节为单位。 |
Z
zengyawen 已提交
1243

Z
zhangxingxia 已提交
1244
**返回值:**
H
HelloCrease 已提交
1245 1246
  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
Z
zengyawen 已提交
1247 1248
  | Promise&lt;void&gt; | Promise实例,用于异步获取结果。本调用将返回空值。 |

Z
zhangxingxia 已提交
1249
**示例:**
Z
zhangxingxia 已提交
1250 1251 1252 1253 1254
  ```js
  fileio.truncate(path, len).then(function(){
      console.info("truncate file successfully");
  }).catch(function(err){
      console.info("truncate file failed with error:"+ err);
Z
zengyawen 已提交
1255 1256 1257 1258 1259 1260 1261 1262 1263 1264
  });
  ```


## fileio.truncate<sup>7+</sup>

truncate(path: string, len: number, callback:AsyncCallback&lt;void&gt;): void

以异步方法基于文件路径截断文件,使用callback形式返回结果。

1265 1266
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1267
**参数:**
Z
zengyawen 已提交
1268 1269 1270 1271 1272
| 参数名   | 类型                      | 必填 | 说明                             |
| -------- | ------------------------- | ---- | -------------------------------- |
| path     | string                    | 是   | 待截断文件的应用沙箱路径。       |
| len      | number                    | 是   | 文件截断后的长度,以字节为单位。 |
| callback | AsyncCallback&lt;void&gt; | 是   | 异步截断文件的信息之后的回调。   |
Z
zengyawen 已提交
1273

Z
zhangxingxia 已提交
1274
**示例:**
Z
zhangxingxia 已提交
1275 1276 1277
  ```js
  fileio.truncate(path, len, function(err){
      // do something
Z
zengyawen 已提交
1278 1279 1280 1281 1282 1283
  });
  ```


## fileio.truncateSync<sup>7+</sup>

1284
truncateSync(path: string, len?: number): void
Z
zengyawen 已提交
1285 1286 1287

以同步方法基于文件路径截断文件。

1288 1289
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1290
**参数:**
Z
zengyawen 已提交
1291 1292 1293 1294
| 参数名 | 类型   | 必填 | 说明                             |
| ------ | ------ | ---- | -------------------------------- |
| path   | string | 是   | 待截断文件的应用沙箱路径。       |
| len    | number | 否   | 文件截断后的长度,以字节为单位。 |
Z
zengyawen 已提交
1295

Z
zhangxingxia 已提交
1296
**示例:**
Z
zhangxingxia 已提交
1297
  ```js
Z
zhangxingxia 已提交
1298
  fileio.truncateSync(path, len);
Z
zengyawen 已提交
1299 1300 1301 1302 1303
  ```


## fileio.readText<sup>7+</sup>

1304 1305 1306 1307 1308
readText(filePath: string, options?: {
    position?: number;
    length?: number;
    encoding?: string;
}): Promise&lt;string&gt;
Z
zengyawen 已提交
1309 1310 1311

以异步方法基于文本方式读取文件(即直接读取文件的文本内容),使用promise形式返回结果。

1312 1313
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1314
**参数:**
Z
zengyawen 已提交
1315 1316 1317 1318
| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| filePath | string | 是   | 待读取文件的应用沙箱路径。                                   |
| options  | Object | 否   | 支持如下选项:<br/>-&nbsp;position,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读取。<br/>-&nbsp;length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度减去偏移长度。<br/>-&nbsp;encoding,string类型,当数据是&nbsp;string&nbsp;类型时有效,表示数据的编码方式,默认&nbsp;'utf-8',仅支持&nbsp;'utf-8'。 |
Z
zengyawen 已提交
1319

Z
zhangxingxia 已提交
1320
**返回值:**
H
HelloCrease 已提交
1321 1322
  | 类型                    | 说明         |
  | --------------------- | ---------- |
Z
zengyawen 已提交
1323 1324
  | Promise&lt;string&gt; | 返回读取文件的内容。 |

Z
zhangxingxia 已提交
1325
**示例:**
Z
zhangxingxia 已提交
1326 1327 1328 1329 1330
  ```js
  fileio.readText(path).then(function(str) {
      console.info("readText successfully:"+ str);
  }).catch(function(err){
      console.info("readText failed with error:"+ err);
Z
zengyawen 已提交
1331 1332 1333 1334 1335 1336
  });
  ```


## fileio.readText<sup>7+</sup>

1337 1338 1339 1340 1341
readText(filePath: string, options: {
    position?: number;
    length?: number;
    encoding?: string;
}, callback: AsyncCallback&lt;string&gt;): void
Z
zengyawen 已提交
1342 1343 1344

以异步方法基于文本方式读取文件(即直接读取文件的文本内容),使用callback形式返回结果。

1345 1346
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1347
**参数:**
Z
zengyawen 已提交
1348 1349 1350 1351 1352
| 参数名   | 类型                        | 必填 | 说明                                                         |
| -------- | --------------------------- | ---- | ------------------------------------------------------------ |
| filePath | string                      | 是   | 待读取文件的应用沙箱路径。                                   |
| options  | Object                      | 否   | 支持如下选项:<br/>-&nbsp;position,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读取。<br/>-&nbsp;length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度减去偏移长度。<br/>-&nbsp;encoding,string类型,当数据是&nbsp;string&nbsp;类型时有效,表示数据的编码方式,默认&nbsp;'utf-8',仅支持&nbsp;'utf-8'。 |
| callback | AsyncCallback&lt;string&gt; | 是   | 异步通过文本方式读取文件之后的回调。                         |
Z
zengyawen 已提交
1353

Z
zhangxingxia 已提交
1354
**示例:**
Z
zhangxingxia 已提交
1355
  ```js
Z
zengyawen 已提交
1356
  fileio.readText(path, function(err, str){
Z
zhangxingxia 已提交
1357
      // do something
Z
zengyawen 已提交
1358 1359 1360 1361 1362 1363
  });
  ```


## fileio.readTextSync<sup>7+</sup>

1364 1365 1366 1367 1368
readTextSync(filePath: string, options?: {
    position?: number;
    length?: number;
    encoding?: string;
}): string
Z
zengyawen 已提交
1369 1370 1371

以同步方法基于文本方式读取文件(即直接读取文件的文本内容)。

1372 1373
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1374
**参数:**
Z
zengyawen 已提交
1375 1376 1377 1378
| 参数名   | 类型   | 必填 | 说明                                                         |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| filePath | string | 是   | 待读取文件的应用沙箱路径。                                   |
| options  | Object | 否   | 支持如下选项:<br/>-&nbsp;position,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读取。<br/>-&nbsp;length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度减去偏移长度。<br/>-&nbsp;encoding,string类型,当数据是&nbsp;string&nbsp;类型时有效,表示数据的编码方式,默认&nbsp;'utf-8',仅支持&nbsp;'utf-8'。 |
Z
zengyawen 已提交
1379

Z
zhangxingxia 已提交
1380
**返回值:**
Z
zhangxingxia 已提交
1381 1382 1383
  | 类型   | 说明                 |
  | ------ | -------------------- |
  | string | 返回读取文件的内容。 |
Z
zengyawen 已提交
1384

Z
zhangxingxia 已提交
1385
**示例:**
Z
zhangxingxia 已提交
1386 1387
  ```js
  let str = fileio.readTextSync(path, {position: 1, length: 3});
Z
zengyawen 已提交
1388 1389 1390 1391 1392 1393 1394 1395 1396
  ```


## fileio.lstat<sup>7+</sup>

lstat(path: string): Promise&lt;Stat&gt;

以异步方法获取链接状态信息,使用promise形式返回结果。

1397 1398
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1399
**参数:**
Z
zengyawen 已提交
1400 1401 1402
| 参数名 | 类型   | 必填 | 说明                                   |
| ------ | ------ | ---- | -------------------------------------- |
| path   | string | 是   | 目标文件的应用沙箱路径,指向链接状态。 |
Z
zengyawen 已提交
1403

Z
zhangxingxia 已提交
1404
**返回值:**
H
HelloCrease 已提交
1405 1406
  | 类型                           | 说明         |
  | ---------------------------- | ---------- |
Z
zengyawen 已提交
1407 1408
  | Promise&lt;[Stat](#stat)&gt; | 表示文件的具体信息。 |

Z
zhangxingxia 已提交
1409
**示例:**
Z
zhangxingxia 已提交
1410 1411 1412 1413 1414 1415
  ```js
  fileio.lstat(path).then(function(stat){
      console.info("get link status successfully:"+ number);
  }).catch(function(err){
      console.info("get link status failed with error:"+ err);
  });
Z
zengyawen 已提交
1416 1417 1418 1419 1420 1421 1422 1423 1424
  ```


## fileio.lstat<sup>7+</sup>

lstat(path:string, callback:AsyncCallback&lt;Stat&gt;): void

以异步方法获取链接状态信息,使用callback形式返回结果。

1425 1426
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1427
**参数:**
Z
zengyawen 已提交
1428 1429 1430 1431
| 参数名   | 类型                               | 必填 | 说明                                   |
| -------- | ---------------------------------- | ---- | -------------------------------------- |
| path     | string                             | 是   | 目标文件的应用沙箱路径,指向链接状态。 |
| callback | AsyncCallback&lt;[Stat](#stat)&gt; | 是   | 异步获取链接状态信息之后的回调。       |
Z
zengyawen 已提交
1432

Z
zhangxingxia 已提交
1433
**示例:**
Z
zhangxingxia 已提交
1434 1435 1436
  ```js
  fileio.lstat(path, function (err, stat) {
      // do something
Z
zengyawen 已提交
1437
  });
Z
zengyawen 已提交
1438 1439 1440 1441 1442 1443 1444 1445 1446
  ```


## fileio.lstatSync<sup>7+</sup>

lstatSync(path:string): Stat

以同步方法获取链接状态信息。

1447 1448
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1449
**参数:**
Z
zengyawen 已提交
1450 1451 1452
| 参数名 | 类型   | 必填 | 说明                                   |
| ------ | ------ | ---- | -------------------------------------- |
| path   | string | 是   | 目标文件的应用沙箱路径,指向链接状态。 |
Z
zengyawen 已提交
1453

Z
zhangxingxia 已提交
1454
**返回值:**
H
HelloCrease 已提交
1455 1456
  | 类型            | 说明         |
  | ------------- | ---------- |
Z
zengyawen 已提交
1457 1458
  | [Stat](#stat) | 表示文件的具体信息。 |

Z
zhangxingxia 已提交
1459
**示例:**
Z
zhangxingxia 已提交
1460
  ```js
Z
zengyawen 已提交
1461 1462 1463 1464 1465 1466
  let stat = fileio.lstatSync(path);
  ```


## fileio.read<sup>7+</sup>

1467 1468 1469 1470 1471
read(buffer: ArrayBuffer, options?: {
    position?: number;
    offset?: number;
    length?: number;
}): Promise&lt;ReadOut&gt;
Z
zengyawen 已提交
1472 1473 1474

以异步方法从文件读取数据,使用promise形式返回结果。

1475 1476
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1477
**参数:**
Z
update  
zhangxingxia 已提交
1478 1479 1480
  | 参数名  | 类型        | 必填 | 说明                                                         |
  | ------- | ----------- | ---- | ------------------------------------------------------------ |
  | buffer  | ArrayBuffer | 是   | 用于保存读取到的文件数据的缓冲区。                           |
Z
zhangxingxia 已提交
1481
  | options | Object      | 否   | 支持如下选项:<br/>-&nbsp;offset,number类型,表示将数据读取到缓冲区的位置,即相对于缓冲区首地址的偏移。可选,默认为0。<br/>-&nbsp;length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度减去偏移长度。<br/>约束:offset+length<=buffer.size。 |
Z
zengyawen 已提交
1482

Z
zhangxingxia 已提交
1483
**返回值:**
H
HelloCrease 已提交
1484 1485
  | 类型                                 | 说明     |
  | ---------------------------------- | ------ |
1486
  | Promise&lt;[ReadOut](#readout)&gt; | 读取的结果。 |
Z
zengyawen 已提交
1487

Z
zhangxingxia 已提交
1488
**示例:**
Z
zhangxingxia 已提交
1489 1490
  ```js
  fileio.read(new ArrayBuffer(4096)).then(function(readout){
1491 1492
      console.info("read file data successfully");
      console.log(String.fromCharCode.apply(null, new Uint8Array(readOut.buffer)));
Z
zhangxingxia 已提交
1493 1494 1495
  }).catch(function(err){
      console.info("read file data failed with error:"+ err);
  });
Z
zengyawen 已提交
1496 1497 1498 1499 1500
  ```


## fileio.read<sup>7+</sup>

1501 1502 1503 1504 1505
read(buffer: ArrayBuffer, options: {
    position?: number;
    offset?: number;
    length?: number;
}, callback: AsyncCallback&lt;ReadOut&gt;): void
Z
zengyawen 已提交
1506 1507 1508

异步方法从文件读取数据,使用callback形式返回结果。

1509 1510
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1511
**参数:**
H
HelloCrease 已提交
1512 1513 1514
  | 参数名      | 类型                                       | 必填   | 说明                                       |
  | -------- | ---------------------------------------- | ---- | ---------------------------------------- |
  | buffer   | ArrayBuffer                              | 是    | 用于保存读取到的文件数据的缓冲区。                        |
Z
zhangxingxia 已提交
1515
  | options  | Object                                   | 否    | 支持如下选项:<br/>-&nbsp;offset,number类型,表示将数据读取到缓冲区的位置,即相对于缓冲区首地址的偏移。可选,默认为0。<br/>-&nbsp;length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度减去偏移长度。<br/>约束:offset+length<=buffer.size。 |
H
HelloCrease 已提交
1516
  | callback | AsyncCallback&lt;[ReadOut](#readout)&gt; | 是    | 异步从文件读取数据之后的回调。                          |
Z
zengyawen 已提交
1517

Z
zhangxingxia 已提交
1518
**示例:**
Z
zhangxingxia 已提交
1519
  ```js
Z
zengyawen 已提交
1520 1521
  let buf = new ArrayBuffer(4096);
  fileio.read(buf, function (err, readOut) {
1522 1523 1524
      if (readOut) {
          console.info("read file data successfully");
          console.log(String.fromCharCode.apply(null, new Uint8Array(readOut.buffer)));
Z
zengyawen 已提交
1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535
      }
  });
  ```


## fileio.rename<sup>7+</sup>

rename(oldPath: string, newPath: string): Promise&lt;void&gt;

以异步方法重命名文件,使用promise形式返回结果。

1536 1537
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1538
**参数:**
Z
zengyawen 已提交
1539 1540 1541 1542
| 参数名  | 类型   | 必填 | 说明                         |
| ------- | ------ | ---- | ---------------------------- |
| oldPath | string | 是   | 目标文件的当前应用沙箱路径。 |
| newPath | String | 是   | 目标文件的新应用沙箱路径。   |
Z
zengyawen 已提交
1543

Z
zhangxingxia 已提交
1544
**返回值:**
H
HelloCrease 已提交
1545 1546
  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
Z
zengyawen 已提交
1547 1548
  | Promise&lt;void&gt; | Promise实例,用于异步获取结果。本调用将返回空值。 |

Z
zhangxingxia 已提交
1549
**示例:**
Z
zhangxingxia 已提交
1550
  ```js
Z
zhangxingxia 已提交
1551
  fileio.rename(oldPath, newPath).then(function() {
Z
zhangxingxia 已提交
1552 1553 1554
      console.info("rename successfully");
  }).catch(function(err){
      console.info("rename failed with error:"+ err);
Z
zengyawen 已提交
1555 1556 1557 1558 1559 1560 1561 1562 1563 1564
  });
  ```


## fileio.rename<sup>7+</sup>

rename(oldPath: string, newPath: string, callback: AsyncCallback&lt;void&gt;): void

以异步方法重命名文件,使用callback形式返回结果。

1565 1566
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1567
**参数:**
Z
zengyawen 已提交
1568 1569 1570 1571 1572
| 参数名   | 类型                      | 必填 | 说明                         |
| -------- | ------------------------- | ---- | ---------------------------- |
| oldPath  | string                    | 是   | 目标文件的当前应用沙箱路径。 |
| newPath  | String                    | 是   | 目标文件的新应用沙箱路径。   |
| Callback | AsyncCallback&lt;void&gt; | 是   | 异步重命名文件之后的回调。   |
Z
zengyawen 已提交
1573

Z
zhangxingxia 已提交
1574
**示例:**
Z
zhangxingxia 已提交
1575
  ```js
Z
zhangxingxia 已提交
1576
  fileio.rename(oldPath, newPath, function(err){
Z
zengyawen 已提交
1577 1578 1579 1580 1581 1582 1583 1584 1585 1586
  });
  ```


## fileio.renameSync<sup>7+</sup>

renameSync(oldPath: string, newPath: string): void

以同步方法重命名文件。

1587 1588
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1589
**参数:**
Z
zengyawen 已提交
1590 1591 1592 1593
| 参数名  | 类型   | 必填 | 说明                         |
| ------- | ------ | ---- | ---------------------------- |
| oldPath | string | 是   | 目标文件的当前应用沙箱路径。 |
| newPath | String | 是   | 目标文件的新应用沙箱路径。   |
Z
zengyawen 已提交
1594

Z
zhangxingxia 已提交
1595
**示例:**
Z
zhangxingxia 已提交
1596
  ```js
Z
zhangxingxia 已提交
1597
  fileio.renameSync(oldPath, newPath);
Z
zengyawen 已提交
1598 1599 1600 1601 1602 1603 1604 1605 1606
  ```


## fileio.fsync<sup>7+</sup>

fsync(fd: number): Promise&lt;void&gt;

以异步方法同步文件数据,使用promise形式返回结果。

1607 1608
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1609
**参数:**
H
HelloCrease 已提交
1610 1611 1612
  | 参数名  | 类型     | 必填   | 说明           |
  | ---- | ------ | ---- | ------------ |
  | fd   | number | 是    | 待同步文件的文件描述符。 |
Z
zengyawen 已提交
1613

Z
zhangxingxia 已提交
1614
**返回值:**
H
HelloCrease 已提交
1615 1616
  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
Z
zengyawen 已提交
1617 1618
  | Promise&lt;void&gt; | Promise实例,用于异步获取结果。本调用将返回空值。 |

Z
zhangxingxia 已提交
1619
**示例:**
Z
zhangxingxia 已提交
1620 1621 1622 1623 1624 1625
  ```js
  fileio.fsync(fd).then(function(){
      console.info("sync data successfully");
  }).catch(function(err){
      console.info("sync data failed with error:"+ err);
  });
Z
zengyawen 已提交
1626 1627 1628 1629 1630 1631 1632 1633 1634
  ```


## fileio.fsync<sup>7+</sup>

fsync(fd: number, callback: AsyncCallback&lt;void&gt;): void

以异步方法同步文件数据,使用callback形式返回结果。

1635 1636
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1637
**参数:**
H
HelloCrease 已提交
1638 1639 1640 1641
  | 参数名      | 类型                        | 必填   | 说明              |
  | -------- | ------------------------- | ---- | --------------- |
  | fd       | number                    | 是    | 待同步文件的文件描述符。    |
  | Callback | AsyncCallback&lt;void&gt; | 是    | 异步将文件数据同步之后的回调。 |
Z
zengyawen 已提交
1642

Z
zhangxingxia 已提交
1643
**示例:**
Z
zhangxingxia 已提交
1644
  ```js
Z
zengyawen 已提交
1645
  fileio.fsync(fd, function(err){
Z
zhangxingxia 已提交
1646
      // do something
Z
zengyawen 已提交
1647 1648 1649 1650 1651 1652 1653 1654 1655 1656
  });
  ```


## fileio.fsyncSync<sup>7+</sup>

fsyncSync(fd: number): void

以同步方法同步文件数据。

1657 1658
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1659
**参数:**
H
HelloCrease 已提交
1660 1661 1662
  | 参数名  | 类型     | 必填   | 说明           |
  | ---- | ------ | ---- | ------------ |
  | fd   | number | 是    | 待同步文件的文件描述符。 |
Z
zengyawen 已提交
1663

Z
zhangxingxia 已提交
1664
**示例:**
Z
zhangxingxia 已提交
1665
  ```js
Z
zengyawen 已提交
1666 1667 1668 1669 1670 1671 1672 1673 1674 1675
  fileio.fyncsSync(fd);
  ```


## fileio.fdatasync<sup>7+</sup>

fdatasync(fd: number): Promise&lt;void&gt;

以异步方法实现文件内容数据同步,使用promise形式返回结果。

1676 1677
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1678
**参数:**
H
HelloCrease 已提交
1679 1680 1681
  | 参数名  | 类型     | 必填   | 说明           |
  | ---- | ------ | ---- | ------------ |
  | fd   | number | 是    | 待同步文件的文件描述符。 |
Z
zengyawen 已提交
1682

Z
zhangxingxia 已提交
1683
**返回值:**
H
HelloCrease 已提交
1684 1685
  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
Z
zengyawen 已提交
1686 1687
  | Promise&lt;void&gt; | Promise实例,用于异步获取结果,本调用将返回空值。 |

Z
zhangxingxia 已提交
1688
**示例:**
Z
zhangxingxia 已提交
1689 1690 1691 1692 1693
  ```js
  fileio.fdatasync(fd).then(function(err) {
      console.info("sync data successfully");
  }).catch(function(err){
      console.info("sync data failed with error:"+ err);
Z
zengyawen 已提交
1694 1695 1696 1697 1698 1699 1700 1701 1702 1703
  });
  ```


## fileio.fdatasync<sup>7+</sup>

fdatasync(fd: number, callback:AsyncCallback&lt;void&gt;): void

以异步方法实现文件内容数据同步,使用callback形式返回结果。

1704 1705
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1706
**参数:**
H
HelloCrease 已提交
1707 1708 1709 1710
  | 参数名      | 类型                              | 必填   | 说明                |
  | -------- | ------------------------------- | ---- | ----------------- |
  | fd       | number                          | 是    | 待同步文件的文件描述符。      |
  | callback | AsyncCallback&nbsp;&lt;void&gt; | 是    | 异步将文件内容数据同步之后的回调。 |
Z
zengyawen 已提交
1711

Z
zhangxingxia 已提交
1712
**示例:**
Z
zhangxingxia 已提交
1713
  ```js
Z
zengyawen 已提交
1714
  fileio.fdatasync (fd, function (err) {
Z
zhangxingxia 已提交
1715
      // do something
Z
zengyawen 已提交
1716 1717 1718 1719 1720 1721 1722 1723 1724 1725
  });
  ```


## fileio.fdatasyncSync<sup>7+</sup>

fdatasyncSync(fd: number): void

以同步方法实现文件内容数据同步。

1726 1727
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1728
**参数:**
H
HelloCrease 已提交
1729 1730 1731
  | 参数名  | 类型     | 必填   | 说明           |
  | ---- | ------ | ---- | ------------ |
  | fd   | number | 是    | 待同步文件的文件描述符。 |
Z
zengyawen 已提交
1732

Z
zhangxingxia 已提交
1733
**示例:**
Z
zhangxingxia 已提交
1734
  ```js
Z
zengyawen 已提交
1735 1736 1737 1738 1739 1740 1741 1742 1743 1744
  let stat = fileio.fdatasyncSync(fd);
  ```


## fileio.symlink<sup>7+</sup>

symlink(target: string, srcPath: string): Promise&lt;void&gt;

以异步方法基于文件路径创建符号链接,使用promise形式返回结果。

1745 1746
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1747
**参数:**
Z
zengyawen 已提交
1748 1749 1750 1751
| 参数名  | 类型   | 必填 | 说明                         |
| ------- | ------ | ---- | ---------------------------- |
| target  | string | 是   | 目标文件的应用沙箱路径。     |
| srcPath | string | 是   | 符号链接文件的应用沙箱路径。 |
Z
zengyawen 已提交
1752

Z
zhangxingxia 已提交
1753
**返回值:**
H
HelloCrease 已提交
1754 1755
  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
Z
zengyawen 已提交
1756 1757
  | Promise&lt;void&gt; | Promise实例,用于异步获取结果,本调用将返回空值。 |

Z
zhangxingxia 已提交
1758
**示例:**
Z
zhangxingxia 已提交
1759 1760 1761 1762 1763
  ```js
  fileio.symlink(target, srcPath).then(function() {
      console.info("symlink successfully");
  }).catch(function(err){
      console.info("symlink failed with error:"+ err);
Z
zengyawen 已提交
1764 1765 1766 1767 1768 1769 1770 1771 1772 1773
  });
  ```


## fileio.symlink<sup>7+</sup>

symlink(target: string, srcPath: string, callback: AsyncCallback&lt;void&gt;): void

以异步方法基于文件路径创建符号链接,使用callback形式返回结果。

1774 1775
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1776
**参数:**
Z
zengyawen 已提交
1777 1778 1779 1780 1781
| 参数名   | 类型                      | 必填 | 说明                             |
| -------- | ------------------------- | ---- | -------------------------------- |
| target   | string                    | 是   | 目标文件的应用沙箱路径。         |
| srcPath  | string                    | 是   | 符号链接文件的应用沙箱路径。     |
| callback | AsyncCallback&lt;void&gt; | 是   | 异步创建符号链接信息之后的回调。 |
Z
zengyawen 已提交
1782

Z
zhangxingxia 已提交
1783
**示例:**
Z
zhangxingxia 已提交
1784 1785 1786
  ```js
  fileio.symlink(target, srcPath, function (err) {
      // do something
Z
zengyawen 已提交
1787 1788 1789 1790 1791 1792 1793 1794 1795 1796
  });
  ```


## fileio.symlinkSync<sup>7+</sup>

symlinkSync(target: string, srcPath: string): void

以同步的方法基于文件路径创建符号链接。

1797 1798
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1799
**参数:**
Z
zengyawen 已提交
1800 1801 1802 1803
| 参数名  | 类型   | 必填 | 说明                         |
| ------- | ------ | ---- | ---------------------------- |
| target  | string | 是   | 目标文件的应用沙箱路径。     |
| srcPath | string | 是   | 符号链接文件的应用沙箱路径。 |
Z
zengyawen 已提交
1804

Z
zhangxingxia 已提交
1805
**示例:**
Z
zhangxingxia 已提交
1806
  ```js
Z
zengyawen 已提交
1807 1808 1809 1810 1811 1812 1813 1814 1815 1816
  fileio.symlinkSync(target, srcPath);
  ```


## fileio.chown<sup>7+</sup>

chown(path: string, uid: number, gid: number): Promise&lt;void&gt;

以异步的方法基于文件路径改变文件所有者,使用promise形式返回结果。

1817 1818
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1819
**参数:**
Z
zengyawen 已提交
1820 1821 1822 1823 1824
| 参数名 | 类型   | 必填 | 说明                       |
| ------ | ------ | ---- | -------------------------- |
| path   | string | 是   | 待改变文件的应用沙箱路径。 |
| uid    | number | 是   | 新的UID(UserID)。        |
| gid    | number | 是   | 新的GID(GroupID)。       |
Z
zengyawen 已提交
1825

Z
zhangxingxia 已提交
1826
**返回值:**
H
HelloCrease 已提交
1827 1828
  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
Z
zengyawen 已提交
1829 1830
  | Promise&lt;void&gt; | Promise实例,用于异步获取结果,本调用将返回空值。 |

Z
zhangxingxia 已提交
1831
**示例:**
Z
zhangxingxia 已提交
1832
  ```js
Z
zengyawen 已提交
1833
  let stat = fileio.statSync(path);
Z
zengyawen 已提交
1834
  fileio.chown(path, stat.uid, stat.gid).then(function(){
Z
zhangxingxia 已提交
1835 1836 1837 1838
      console.info("chown successfully");
  }).catch(function(err){
      console.info("chown failed with error:"+ err);
  });
Z
zengyawen 已提交
1839 1840 1841 1842 1843 1844 1845 1846 1847
  ```


## fileio.chown<sup>7+</sup>

chown(path: string, uid: number, gid: number, callback: AsyncCallback&lt;void&gt;): void

以异步的方法基于文件路径改变文件所有者,使用callback形式返回结果。

1848 1849
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1850
**参数:**
Z
zengyawen 已提交
1851 1852 1853 1854 1855 1856
| 参数名   | 类型                      | 必填 | 说明                           |
| -------- | ------------------------- | ---- | ------------------------------ |
| path     | string                    | 是   | 待改变文件的应用沙箱路径。     |
| uid      | number                    | 是   | 新的UID。                      |
| gid      | number                    | 是   | 新的GID。                      |
| callback | AsyncCallback&lt;void&gt; | 是   | 异步改变文件所有者之后的回调。 |
Z
zengyawen 已提交
1857

Z
zhangxingxia 已提交
1858
**示例:**
Z
zhangxingxia 已提交
1859
  ```js
Z
zengyawen 已提交
1860 1861
  let stat = fileio.statSync(fpath)
  fileio.chown(path, stat.uid, stat.gid, function (err){
Z
zhangxingxia 已提交
1862
      // do something
Z
zengyawen 已提交
1863 1864 1865 1866 1867 1868 1869 1870 1871 1872
  });
  ```


## fileio.chownSync<sup>7+</sup>

chownSync(path: string, uid: number, gid: number): void

以同步的方法基于文件路径改变文件所有者。

1873 1874
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1875
**参数:**
Z
zengyawen 已提交
1876 1877 1878 1879 1880
| 参数名 | 类型   | 必填 | 说明                       |
| ------ | ------ | ---- | -------------------------- |
| path   | string | 是   | 待改变文件的应用沙箱路径。 |
| uid    | number | 是   | 新的UID。                  |
| gid    | number | 是   | 新的GID。                  |
Z
zengyawen 已提交
1881

Z
zhangxingxia 已提交
1882
**示例:**
Z
zhangxingxia 已提交
1883
  ```js
Z
zengyawen 已提交
1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894
  let stat = fileio.statSync(fpath)
  fileio.chownSync(path, stat.uid, stat.gid);
  ```


## fileio.mkdtemp<sup>7+</sup>

mkdtemp(prefix: string): Promise&lt;string&gt;

以异步的方法创建临时目录,使用promise形式返回结果。

1895 1896
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1897
**参数:**
H
HelloCrease 已提交
1898 1899 1900
  | 参数名    | 类型     | 必填   | 说明                          |
  | ------ | ------ | ---- | --------------------------- |
  | prefix | string | 是    | 用随机产生的字符串替换以“XXXXXX”结尾目录路径。 |
Z
zengyawen 已提交
1901

Z
zhangxingxia 已提交
1902
**返回值:**
Z
zhangxingxia 已提交
1903
  | 类型                   | 说明         |
H
HelloCrease 已提交
1904
  | --------------------- | ---------- |
Z
zengyawen 已提交
1905 1906
  | Promise&lt;string&gt; | 生成的唯一目录路径。 |

Z
zhangxingxia 已提交
1907
**示例:**
Z
zhangxingxia 已提交
1908 1909 1910 1911 1912 1913
  ```js
  fileio.mkdtemp(path + "XXXX").then(function(path){
      console.info("mkdtemp successfully:"+ path);
  }).catch(function(err){
      console.info("mkdtemp failed with error:"+ err);
  });
Z
zengyawen 已提交
1914 1915 1916 1917 1918 1919 1920 1921 1922
  ```


## fileio.mkdtemp<sup>7+</sup>

mkdtemp(prefix: string, callback: AsyncCallback&lt;string&gt;): void

以异步的方法创建临时目录,使用callback形式返回结果。

1923 1924
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1925
**参数:**
H
HelloCrease 已提交
1926 1927 1928 1929
  | 参数名      | 类型                          | 必填   | 说明                          |
  | -------- | --------------------------- | ---- | --------------------------- |
  | prefix   | string                      | 是    | 用随机产生的字符串替换以“XXXXXX”结尾目录路径。 |
  | callback | AsyncCallback&lt;string&gt; | 是    | 异步创建临时目录之后的回调。              |
Z
zengyawen 已提交
1930

Z
zhangxingxia 已提交
1931
**示例:**
Z
zhangxingxia 已提交
1932
  ```js
Z
zengyawen 已提交
1933
  fileio.mkdtemp(path + "XXXX", function (err, res) {
Z
zhangxingxia 已提交
1934
      // do something
Z
zengyawen 已提交
1935 1936 1937 1938 1939 1940 1941 1942 1943 1944
  });
  ```


## fileio.mkdtempSync<sup>7+</sup>

mkdtempSync(prefix: string): string

以同步的方法创建临时目录。

1945 1946
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1947
**参数:**
H
HelloCrease 已提交
1948 1949 1950
  | 参数名    | 类型     | 必填   | 说明                          |
  | ------ | ------ | ---- | --------------------------- |
  | prefix | string | 是    | 用随机产生的字符串替换以“XXXXXX”结尾目录路径。 |
Z
zengyawen 已提交
1951

Z
zhangxingxia 已提交
1952
**返回值:**
Z
zhangxingxia 已提交
1953
  | 类型    | 说明         |
H
HelloCrease 已提交
1954
  | ------ | ---------- |
Z
zengyawen 已提交
1955 1956
  | string | 产生的唯一目录路径。 |

Z
zhangxingxia 已提交
1957
**示例:**
Z
zhangxingxia 已提交
1958
  ```js
Z
zengyawen 已提交
1959 1960 1961 1962 1963 1964 1965 1966 1967 1968
  let res = fileio.mkdtempSync(path + "XXXX");
  ```


## fileio.fchmod<sup>7+</sup>

fchmod(fd: number, mode: number): Promise&lt;void&gt;

以异步方法基于文件描述符改变文件权限,使用promise形式返回结果。

1969 1970
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
1971
**参数:**
H
HelloCrease 已提交
1972 1973 1974 1975
  | 参数名  | 类型     | 必填   | 说明                                       |
  | ---- | ------ | ---- | ---------------------------------------- |
  | fd   | number | 是    | 待改变文件的文件描述符。                             |
  | 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:其余用户具有可执行权限。 |
Z
zengyawen 已提交
1976

Z
zhangxingxia 已提交
1977
**返回值:**
Z
zhangxingxia 已提交
1978
  | 类型                 | 说明                           |
H
HelloCrease 已提交
1979
  | ------------------- | ---------------------------- |
Z
zengyawen 已提交
1980 1981
  | Promise&lt;void&gt; | Promise实例,用于异步获取结果,本调用将返回空值。 |

Z
zhangxingxia 已提交
1982
**示例:**
Z
zhangxingxia 已提交
1983 1984 1985 1986 1987
  ```js
  fileio.fchmod(fd, mode).then(function() {
      console.info("chmod successfully");
  }).catch(function(err){
      console.info("chmod failed with error:"+ err);
Z
zengyawen 已提交
1988 1989 1990 1991 1992 1993 1994 1995 1996 1997
  });
  ```


## fileio.fchmod<sup>7+</sup>

fchmod(fd: number, mode: number, callback: AsyncCallback&lt;void&gt;): void

以异步方法基于文件描述符改变文件权限,使用callback形式返回结果。

1998 1999
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2000
**参数:**
H
HelloCrease 已提交
2001 2002 2003 2004 2005
  | 参数名      | 类型                              | 必填   | 说明                                       |
  | -------- | ------------------------------- | ---- | ---------------------------------------- |
  | fd       | number                          | 是    | 待改变文件的文件描述符。                             |
  | 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:其余用户具有可执行权限。 |
  | callback | AsyncCallback&nbsp;&lt;void&gt; | 是    | 异步改变文件权限之后的回调。                           |
Z
zengyawen 已提交
2006

Z
zhangxingxia 已提交
2007
**示例:**
Z
zhangxingxia 已提交
2008
  ```js
Z
zengyawen 已提交
2009
  fileio.fchmod(fd, mode, function (err) {
Z
zhangxingxia 已提交
2010
      // do something
Z
zengyawen 已提交
2011 2012 2013 2014 2015 2016
  });
  ```


## fileio.fchmodSync<sup>7+</sup>

2017
fchmodSync(fd: number, mode: number): void
Z
zengyawen 已提交
2018 2019 2020

以同步方法基于文件描述符改变文件权限。

2021 2022
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2023
**参数:**
H
HelloCrease 已提交
2024 2025 2026 2027
  | 参数名  | 类型     | 必填   | 说明                                       |
  | ---- | ------ | ---- | ---------------------------------------- |
  | fd   | number | 是    | 待改变文件的文件描述符。                             |
  | 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:其余用户具有可执行权限。 |
Z
zengyawen 已提交
2028

Z
zhangxingxia 已提交
2029
**示例:**
Z
zhangxingxia 已提交
2030
  ```js
Z
zengyawen 已提交
2031 2032 2033 2034 2035 2036 2037 2038 2039 2040
   fileio.fchmodSync(fd, mode);
  ```


## fileio.createStream<sup>7+</sup>

createStream(path: string, mode: string): Promise&lt;Stream&gt;

以异步方法基于文件路径打开文件流,使用promise形式返回结果。

2041 2042
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2043
**参数:**
Z
zengyawen 已提交
2044 2045 2046 2047
| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| path   | string | 是   | 待打开文件的应用沙箱路径。                                   |
| mode   | string | 是   | -&nbsp;r:打开只读文件,该文件必须存在。<br/>-&nbsp;r+:打开可读写的文件,该文件必须存在。<br/>-&nbsp;w:打开只写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。<br/>-&nbsp;w+:打开可读写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。<br/>-&nbsp;a:以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。<br/>-&nbsp;a+:以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 |
Z
zengyawen 已提交
2048

Z
zhangxingxia 已提交
2049
**返回值:**
H
HelloCrease 已提交
2050 2051
  | 类型                                | 说明        |
  | --------------------------------- | --------- |
Z
zengyawen 已提交
2052 2053
  | Promise&lt;[Stream](#stream7)&gt; | 返回文件流的结果。 |

Z
zhangxingxia 已提交
2054
**示例:**
Z
zhangxingxia 已提交
2055 2056 2057 2058 2059 2060
  ```js
  fileio.createStream(path, "r+").then(function(stream){
      console.info("createStream successfully");
  }).catch(function(err){
      console.info("createStream failed with error:"+ err);
  });
Z
zengyawen 已提交
2061 2062 2063 2064 2065 2066 2067 2068 2069
  ```


## fileio.createStream<sup>7+</sup>

createStream(path: string, mode: string, callback: AsyncCallback&lt;Stream&gt;): void

以异步方法基于文件路径打开文件流,使用callback形式返回结果。

2070 2071
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2072
**参数:**
Z
zengyawen 已提交
2073 2074 2075 2076 2077
| 参数名   | 类型                                    | 必填 | 说明                                                         |
| -------- | --------------------------------------- | ---- | ------------------------------------------------------------ |
| path     | string                                  | 是   | 待打开文件的应用沙箱路径。                                   |
| mode     | string                                  | 是   | -&nbsp;r:打开只读文件,该文件必须存在。<br/>-&nbsp;r+:打开可读写的文件,该文件必须存在。<br/>-&nbsp;w:打开只写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。<br/>-&nbsp;w+:打开可读写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。<br/>-&nbsp;a:以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。<br/>-&nbsp;a+:以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 |
| callback | AsyncCallback&lt;[Stream](#stream7)&gt; | 是   | 异步打开文件流之后的回调。                                   |
Z
zengyawen 已提交
2078

Z
zhangxingxia 已提交
2079
**示例:**
Z
zhangxingxia 已提交
2080 2081 2082
  ```js
  fileio.createStream(path, mode, function(err, stream){
      // do something
Z
zengyawen 已提交
2083 2084 2085 2086 2087 2088 2089 2090 2091 2092
  });
  ```


## fileio.createStreamSync<sup>7+</sup>

createStreamSync(path: string, mode: string): Stream

以同步方法基于文件路径打开文件流。

2093 2094
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2095
**参数:**
Z
zengyawen 已提交
2096 2097 2098 2099
| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| path   | string | 是   | 待打开文件的应用沙箱路径。                                   |
| mode   | string | 是   | -&nbsp;r:打开只读文件,该文件必须存在。<br/>-&nbsp;r+:打开可读写的文件,该文件必须存在。<br/>-&nbsp;w:打开只写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。<br/>-&nbsp;w+:打开可读写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。<br/>-&nbsp;a:以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。<br/>-&nbsp;a+:以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 |
Z
zengyawen 已提交
2100

Z
zhangxingxia 已提交
2101
**返回值:**
Z
zhangxingxia 已提交
2102
  | 类型                | 说明        |
H
HelloCrease 已提交
2103
  | ------------------ | --------- |
Z
zengyawen 已提交
2104 2105
  | [Stream](#stream7) | 返回文件流的结果。 |

Z
zhangxingxia 已提交
2106
**示例:**
Z
zhangxingxia 已提交
2107
  ```js
Z
zengyawen 已提交
2108 2109 2110 2111 2112 2113 2114 2115 2116 2117
  let ss = fileio.createStreamSync(path, "r+");
  ```


## fileio.fdopenStream<sup>7+</sup>

fdopenStream(fd: number, mode: string): Promise&lt;Stream&gt;

以异步方法基于文件描述符打开文件流,使用promise形式返回结果。

2118 2119
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2120
**参数:**
H
HelloCrease 已提交
2121 2122 2123 2124
  | 参数名  | 类型     | 必填   | 说明                                       |
  | ---- | ------ | ---- | ---------------------------------------- |
  | fd   | number | 是    | 待打开文件的文件描述符。                             |
  | mode | string | 是    | -&nbsp;r:打开只读文件,该文件必须存在。<br/>-&nbsp;r+:打开可读写的文件,该文件必须存在。<br/>-&nbsp;w:打开只写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。<br/>-&nbsp;w+:打开可读写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。<br/>-&nbsp;a:以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。<br/>-&nbsp;a+:以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 |
Z
zengyawen 已提交
2125

Z
zhangxingxia 已提交
2126
**返回值:**
Z
zhangxingxia 已提交
2127
  | 类型                               | 说明        |
H
HelloCrease 已提交
2128
  | --------------------------------- | --------- |
Z
zengyawen 已提交
2129 2130
  | Promise&lt;[Stream](#stream7)&gt; | 返回文件流的结果。 |

Z
zhangxingxia 已提交
2131
**示例:**
Z
zhangxingxia 已提交
2132 2133
  ```js
  fileio.fdopenStream(fd, mode).then(function(stream){
Z
zengyawen 已提交
2134
      console.info("openStream successfully");
Z
zhangxingxia 已提交
2135 2136 2137
  }).catch(function(err){
      console.info("openStream failed with error:"+ err);
  });
Z
zengyawen 已提交
2138 2139 2140 2141 2142 2143 2144 2145 2146
  ```


## fileio.fdopenStream<sup>7+</sup>

fdopenStream(fd: number, mode: string, callback: AsyncCallback&lt;Stream&gt;): void

以异步方法基于文件描述符打开文件流,使用callback形式返回结果。

2147 2148
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2149
**参数:**
H
HelloCrease 已提交
2150 2151 2152 2153 2154
  | 参数名      | 类型                                       | 必填   | 说明                                       |
  | -------- | ---------------------------------------- | ---- | ---------------------------------------- |
  | fd       | number                                   | 是    | 待打开文件的文件描述符。                             |
  | mode     | string                                   | 是    | -&nbsp;r:打开只读文件,该文件必须存在。<br/>-&nbsp;r+:打开可读写的文件,该文件必须存在。<br/>-&nbsp;w:打开只写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。<br/>-&nbsp;w+:打开可读写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。<br/>-&nbsp;a:以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。<br/>-&nbsp;a+:以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 |
  | callback | AsyncCallback&nbsp;&lt;[Stream](#stream7)&gt; | 是    | 异步打开文件流之后的回调。                            |
Z
zengyawen 已提交
2155

Z
zhangxingxia 已提交
2156
**示例:**
Z
zhangxingxia 已提交
2157 2158 2159
  ```js
  fileio.fdopenStream(fd, mode, function (err, stream) {
      // do something
Z
zengyawen 已提交
2160 2161 2162 2163 2164 2165 2166 2167 2168 2169
  });
  ```


## fileio.fdopenStreamSync<sup>7+</sup>

fdopenStreamSync(fd: number, mode: string): Stream

以同步方法基于文件描述符打开文件流。

2170 2171
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2172
**参数:**
H
HelloCrease 已提交
2173 2174 2175 2176
  | 参数名  | 类型     | 必填   | 说明                                       |
  | ---- | ------ | ---- | ---------------------------------------- |
  | fd   | number | 是    | 待打开文件的文件描述符。                             |
  | mode | string | 是    | -&nbsp;r:打开只读文件,该文件必须存在。<br/>-&nbsp;r+:打开可读写的文件,该文件必须存在。<br/>-&nbsp;w:打开只写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。<br/>-&nbsp;w+:打开可读写文件,若文件存在则文件长度清0,即该文件内容会消失。若文件不存在则建立该文件。<br/>-&nbsp;a:以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。<br/>-&nbsp;a+:以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 |
Z
zengyawen 已提交
2177

Z
zhangxingxia 已提交
2178
**返回值:**
Z
zhangxingxia 已提交
2179
  | 类型                | 说明        |
H
HelloCrease 已提交
2180
  | ------------------ | --------- |
Z
zengyawen 已提交
2181 2182
  | [Stream](#stream7) | 返回文件流的结果。 |

Z
zhangxingxia 已提交
2183
**示例:**
Z
zhangxingxia 已提交
2184
  ```js
Z
zengyawen 已提交
2185 2186 2187 2188 2189 2190 2191 2192 2193 2194
  let ss = fileio.fdopenStreamSync(fd, "r+");
  ```


## fileio.fchown<sup>7+</sup>

fchown(fd: number, uid: number, gid: number): Promise&lt;void&gt;

以异步方法基于文件描述符改变文件所有者,使用promise形式返回结果。

2195 2196
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2197
**参数:**
H
HelloCrease 已提交
2198 2199 2200 2201 2202
  | 参数名  | 类型     | 必填   | 说明           |
  | ---- | ------ | ---- | ------------ |
  | fd   | number | 是    | 待改变文件的文件描述符。 |
  | uid  | number | 是    | 文件所有者的UID。   |
  | gid  | number | 是    | 文件所有组的GID。   |
Z
zengyawen 已提交
2203

Z
zhangxingxia 已提交
2204
**返回值:**
H
HelloCrease 已提交
2205 2206
  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
Z
zengyawen 已提交
2207 2208
  | Promise&lt;void&gt; | Promise实例,用于异步获取结果。本调用将返回空值。 |

Z
zhangxingxia 已提交
2209
**示例:**
Z
zhangxingxia 已提交
2210
  ```js
Z
zengyawen 已提交
2211
  let stat = fileio.statSync(path);
Z
zhangxingxia 已提交
2212 2213 2214 2215
  fileio.fchown(fd, stat.uid, stat.gid).then(function() {
      console.info("chown successfully");
  }).catch(function(err){
      console.info("chown failed with error:"+ err);
Z
zengyawen 已提交
2216 2217 2218 2219 2220 2221 2222 2223 2224 2225
  });
  ```


## fileio.fchown<sup>7+</sup>

fchown(fd: number, uid: number, gid: number, callback: AsyncCallback&lt;void&gt;): void

以异步方法基于文件描述符改变文件所有者,使用callback形式返回结果。

2226 2227
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2228
**参数:**
H
HelloCrease 已提交
2229 2230 2231 2232 2233 2234
  | 参数名      | 类型                        | 必填   | 说明              |
  | -------- | ------------------------- | ---- | --------------- |
  | fd       | number                    | 是    | 待改变文件的文件描述符。    |
  | uid      | number                    | 是    | 文件所有者的UID。      |
  | gid      | number                    | 是    | 文件所有组的GID。      |
  | callback | AsyncCallback&lt;void&gt; | 是    | 异步改变文件所有者之后的回调。 |
Z
zengyawen 已提交
2235

Z
zhangxingxia 已提交
2236
**示例:**
Z
zhangxingxia 已提交
2237
  ```js
Z
zengyawen 已提交
2238 2239
  let stat = fileio.statSync(fpath);
  fileio.fchown(fd, stat.uid, stat.gid, function (err){
Z
zhangxingxia 已提交
2240
      // do something
Z
zengyawen 已提交
2241 2242 2243 2244 2245 2246 2247 2248 2249 2250
  });
  ```


## fileio.fchownSync<sup>7+</sup>

fchownSync(fd: number, uid: number, gid: number): void

以同步方法基于文件描述符改变文件所有者。

2251 2252
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2253
**参数:**
H
HelloCrease 已提交
2254 2255 2256 2257 2258
  | 参数名  | 类型     | 必填   | 说明           |
  | ---- | ------ | ---- | ------------ |
  | fd   | number | 是    | 待改变文件的文件描述符。 |
  | uid  | number | 是    | 文件所有者的UID。   |
  | gid  | number | 是    | 文件所有组的GID。   |
Z
zengyawen 已提交
2259

Z
zhangxingxia 已提交
2260
**示例:**
Z
zhangxingxia 已提交
2261
  ```js
Z
zengyawen 已提交
2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272
  let stat = fileio.statSync(fpath);
  fileio.fchownSync(fd, stat.uid, stat.gid);
  ```


## fileio.lchown<sup>7+</sup>

lchown(path: string, uid: number, gid: number): Promise&lt;void&gt;

以异步方法基于文件路径改变文件所有者,更改符号链接本身的所有者,而不是符号链接所指向的实际文件,使用promise形式返回结果。

2273 2274
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2275
**参数:**
Z
zengyawen 已提交
2276 2277 2278 2279 2280
| 参数名 | 类型   | 必填 | 说明                       |
| ------ | ------ | ---- | -------------------------- |
| path   | string | 是   | 待打开文件的应用沙箱路径。 |
| uid    | number | 是   | 新的UID。                  |
| gid    | number | 是   | 新的GID。                  |
Z
zengyawen 已提交
2281

Z
zhangxingxia 已提交
2282
**返回值:**
H
HelloCrease 已提交
2283 2284
  | 类型                  | 说明                           |
  | ------------------- | ---------------------------- |
Z
zengyawen 已提交
2285 2286
  | Promise&lt;void&gt; | Promise实例,用于异步获取结果。本调用将返回空值。 |

Z
zhangxingxia 已提交
2287
**示例:**
Z
zhangxingxia 已提交
2288
  ```js
Z
zengyawen 已提交
2289
  let stat = fileio.statSync(path);
Z
zhangxingxia 已提交
2290 2291 2292 2293 2294
  fileio.lchown(path, stat.uid, stat.gid).then(function() {
      console.info("chown successfully");
  }).catch(function(err){
      console.info("chown failed with error:"+ err);
  });
Z
zengyawen 已提交
2295 2296 2297 2298 2299 2300 2301 2302 2303
  ```


## fileio.lchown<sup>7+</sup>

lchown(path: string, uid: number, gid: number, callback: AsyncCallback&lt;void&gt;): void

以异步方法基于文件路径改变文件所有者,更改符号链接本身的所有者,而不是更改符号链接所指向的实际文件,使用callback形式返回结果。

2304 2305
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2306
**参数:**
Z
zengyawen 已提交
2307 2308 2309 2310 2311 2312
| 参数名   | 类型                      | 必填 | 说明                           |
| -------- | ------------------------- | ---- | ------------------------------ |
| path     | string                    | 是   | 待打开文件的应用沙箱路径。     |
| uid      | number                    | 是   | 新的UID。                      |
| gid      | number                    | 是   | 新的GID。                      |
| callback | AsyncCallback&lt;void&gt; | 是   | 异步改变文件所有者之后的回调。 |
Z
zengyawen 已提交
2313

Z
zhangxingxia 已提交
2314
**示例:**
Z
zhangxingxia 已提交
2315
  ```js
Z
zengyawen 已提交
2316 2317
  let stat = fileio.statSync(path);
  fileio.lchown(path, stat.uid, stat.gid, function (err){
Z
zhangxingxia 已提交
2318
      // do something
Z
zengyawen 已提交
2319 2320 2321 2322 2323 2324 2325 2326 2327 2328
  });
  ```


## fileio.lchownSync<sup>7+</sup>

lchownSync(path: string, uid: number, gid: number): void

以同步方法基于文件路径改变文件所有者,更改符号链接本身的所有者,而不是更改符号链接所指向的实际文件。

2329 2330
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2331
**参数:**
Z
zengyawen 已提交
2332 2333 2334 2335 2336
| 参数名 | 类型   | 必填 | 说明                       |
| ------ | ------ | ---- | -------------------------- |
| path   | string | 是   | 待打开文件的应用沙箱路径。 |
| uid    | number | 是   | 新的UID。                  |
| gid    | number | 是   | 新的GID。                  |
Z
zengyawen 已提交
2337

Z
zhangxingxia 已提交
2338
**示例:**
Z
zhangxingxia 已提交
2339
  ```js
Z
zengyawen 已提交
2340 2341 2342 2343 2344 2345 2346 2347 2348
  let stat = fileio.statSync(path);
  fileio.lchownSync(path, stat.uid, stat.gid);
  ```


## fileio.createWatcher<sup>7+</sup>

createWatcher(filename: string, events: number, callback: AsyncCallback&lt;number&gt;): Watcher

Z
zengyawen 已提交
2349
以异步方法监听文件或者目录的变化,使用callback形式返回结果。
Z
zengyawen 已提交
2350

2351 2352
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2353
**参数:**
Z
zengyawen 已提交
2354 2355 2356 2357 2358
| 参数名   | 类型                              | 必填 | 说明                                                         |
| -------- | --------------------------------- | ---- | ------------------------------------------------------------ |
| filename | string                            | 是   | 待监视文件的应用沙箱路径。                                   |
| events   | Number                            | 是   | -&nbsp;1:&nbsp;监听文件或者目录是否发生重命名。<br/>-&nbsp;2:监听文件或者目录内容的是否修改。<br/>-&nbsp;3:两者都有。 |
| callback | AsyncCallback&lt;number&nbsp;&gt; | 是   | 每发生变化一次,调用一次此函数。                             |
Z
zengyawen 已提交
2359

Z
zhangxingxia 已提交
2360
**返回值:**
Z
zhangxingxia 已提交
2361
  | 类型                  | 说明         |
H
HelloCrease 已提交
2362
  | -------------------- | ---------- |
Z
zengyawen 已提交
2363 2364
  | [Watcher](#watcher7) | 文件变化监听的实例。 |

Z
zhangxingxia 已提交
2365
**示例:**
Z
zhangxingxia 已提交
2366 2367 2368
  ```js
  fileio.createWatcher(filename, events, function(watcher){
      // do something
Z
zengyawen 已提交
2369 2370 2371 2372 2373 2374 2375 2376
  });
  ```


## Readout

仅用于read方法,获取文件的读取结果。

2377 2378
**系统能力**:以下各项对应的系统能力均为SystemCapability.FileManagement.File.FileIO。

H
HelloCrease 已提交
2379 2380 2381 2382 2383
| 名称        | 参数类型       | 可读   | 可写   | 说明                |
| --------- | ---------- | ---- | ---- | ----------------- |
| bytesRead | number     | 是    | 是    | 实际读取长度。           |
| offset    | number     | 是    | 是    | 读取数据相对于缓冲区首地址的偏移。 |
| buffer    | ArrayBufer | 是    | 是    | 保存读取数据的缓冲区。       |
Z
zengyawen 已提交
2384 2385 2386 2387 2388


## Stat

文件具体信息,在调用Stat的方法前,需要先通过[stat()](#fileiostat)方法(同步或异步)来构建一个Stat实例。
Z
zengyawen 已提交
2389

2390
**系统能力**:以下各项对应的系统能力均为SystemCapability.FileManagement.File.FileIO。
Z
zengyawen 已提交
2391

Z
zengyawen 已提交
2392
### 属性
Z
zengyawen 已提交
2393

H
HelloCrease 已提交
2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407
| 名称     | 参数类型   | 可读   | 可写   | 说明                                       |
| ------ | ------ | ---- | ---- | ---------------------------------------- |
| dev    | number | 是    | 否    | 标识包含该文件的主设备号。                            |
| ino    | number | 是    | 否    | 标识该文件。通常同设备上的不同文件的INO不同。                 |
| 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:其他执行,对于普通文件,其余用户可执行文件;对于目录,其他用户组可在目录中搜索给定路径名。 |
| nlink  | number | 是    | 否    | 文件的硬链接数。                                 |
| uid    | number | 是    | 否    | 文件所有者的ID。                                |
| gid    | number | 是    | 否    | 文件所有组的ID。                                |
| rdev   | number | 是    | 否    | 标识包含该文件的从设备号。                            |
| size   | number | 是    | 否    | 文件的大小,以字节为单位。仅对普通文件有效。                   |
| blocks | number | 是    | 否    | 文件占用的块数,计算时块大小按512B计算。                   |
| atime  | number | 是    | 否    | 上次访问该文件的时间,表示距1970年1月1日0时0分0秒的秒数。        |
| mtime  | number | 是    | 否    | 上次修改该文件的时间,表示距1970年1月1日0时0分0秒的秒数。        |
| ctime  | number | 是    | 否    | 最近改变文件状态的时间,表示距1970年1月1日0时0分0秒的秒数。       |
Z
zengyawen 已提交
2408 2409


Z
zengyawen 已提交
2410
### isBlockDevice
Z
zengyawen 已提交
2411

Z
zengyawen 已提交
2412
isBlockDevice(): boolean
Z
zengyawen 已提交
2413

Z
zhangxingxia 已提交
2414
用于判断文件是否是块特殊文件。一个块特殊文件只能以块为粒度进行访问,且访问的时候带缓存。
Z
zengyawen 已提交
2415

2416 2417
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2418
**返回值:**
Z
zhangxingxia 已提交
2419 2420
  | 类型      | 说明               |
  | ------- | ---------------- |
Z
zhangxingxia 已提交
2421
  | boolean | 表示文件是否是块特殊设备。 |
Z
zengyawen 已提交
2422

Z
zhangxingxia 已提交
2423
**示例:**
Z
zhangxingxia 已提交
2424
  ```js
Z
zengyawen 已提交
2425 2426
  let isBLockDevice = fileio.statSync(path).isBlockDevice();
  ```
Z
zengyawen 已提交
2427 2428


Z
zengyawen 已提交
2429
### isCharacterDevice
Z
zengyawen 已提交
2430

Z
zengyawen 已提交
2431
isCharacterDevice(): boolean
Z
zengyawen 已提交
2432

Z
zhangxingxia 已提交
2433
用于判断文件是否是字符特殊文件。一个字符特殊设备可进行随机访问,且访问的时候不带缓存。
Z
zengyawen 已提交
2434

2435 2436
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2437
**返回值:**
Z
zhangxingxia 已提交
2438 2439
  | 类型      | 说明                |
  | ------- | ----------------- |
Z
zhangxingxia 已提交
2440
  | boolean | 表示文件是否是字符特殊设备。 |
Z
zengyawen 已提交
2441

Z
zhangxingxia 已提交
2442
**示例:**
Z
zhangxingxia 已提交
2443
  ```js
Z
zengyawen 已提交
2444 2445
  let isCharacterDevice = fileio.statSync(path).isCharacterDevice();
  ```
Z
zengyawen 已提交
2446 2447


Z
zengyawen 已提交
2448
### isDirectory
Z
zengyawen 已提交
2449

Z
zengyawen 已提交
2450
isDirectory(): boolean
Z
zengyawen 已提交
2451

Z
zhangxingxia 已提交
2452
用于判断文件是否是目录。
Z
zengyawen 已提交
2453

2454 2455
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2456
**返回值:**
Z
zhangxingxia 已提交
2457 2458
  | 类型      | 说明            |
  | ------- | ------------- |
Z
zhangxingxia 已提交
2459
  | boolean | 表示文件是否是目录。 |
Z
zengyawen 已提交
2460

Z
zhangxingxia 已提交
2461
**示例:**
Z
zhangxingxia 已提交
2462
  ```js
Z
zengyawen 已提交
2463
  let isDirectory = fileio.statSync(path).isDirectory(); 
Z
zengyawen 已提交
2464
  ```
Z
zengyawen 已提交
2465 2466


Z
zengyawen 已提交
2467
### isFIFO
Z
zengyawen 已提交
2468

Z
zengyawen 已提交
2469
isFIFO(): boolean
Z
zengyawen 已提交
2470

Z
zhangxingxia 已提交
2471
用于判断文件是否是命名管道(有时也称为FIFO)。命名管道通常用于进程间通信。
Z
zengyawen 已提交
2472

2473 2474
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2475
**返回值:**
Z
zhangxingxia 已提交
2476 2477
  | 类型      | 说明                    |
  | ------- | --------------------- |
Z
zhangxingxia 已提交
2478
  | boolean | 表示文件是否是&nbsp;FIFO。 |
Z
zengyawen 已提交
2479

Z
zhangxingxia 已提交
2480
**示例:**
Z
zhangxingxia 已提交
2481
  ```js
Z
zengyawen 已提交
2482
  let isFIFO = fileio.statSync(path).isFIFO(); 
Z
zengyawen 已提交
2483
  ```
Z
zengyawen 已提交
2484 2485


Z
zengyawen 已提交
2486
### isFile
Z
zengyawen 已提交
2487

Z
zengyawen 已提交
2488
isFile(): boolean
Z
zengyawen 已提交
2489

Z
zhangxingxia 已提交
2490
用于判断文件是否是普通文件。
Z
zengyawen 已提交
2491

2492 2493
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2494
**返回值:**
Z
zhangxingxia 已提交
2495 2496
  | 类型      | 说明              |
  | ------- | --------------- |
Z
zhangxingxia 已提交
2497
  | boolean | 表示文件是否是普通文件。 |
Z
zengyawen 已提交
2498

Z
zhangxingxia 已提交
2499
**示例:**
Z
zhangxingxia 已提交
2500
  ```js
Z
zengyawen 已提交
2501
  let isFile = fileio.statSync(fpath).isFile();
Z
zengyawen 已提交
2502
  ```
Z
zengyawen 已提交
2503 2504


Z
zengyawen 已提交
2505
### isSocket
Z
zengyawen 已提交
2506

Z
zengyawen 已提交
2507
isSocket(): boolean
Z
zengyawen 已提交
2508

Z
zhangxingxia 已提交
2509
用于判断文件是否是套接字。
Z
zengyawen 已提交
2510

2511 2512
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2513
**返回值:**
Z
zhangxingxia 已提交
2514 2515
  | 类型      | 说明             |
  | ------- | -------------- |
Z
zhangxingxia 已提交
2516
  | boolean | 表示文件是否是套接字。 |
Z
zengyawen 已提交
2517

Z
zhangxingxia 已提交
2518
**示例:**
Z
zhangxingxia 已提交
2519
  ```js
Z
zengyawen 已提交
2520 2521
  let isSocket = fileio.statSync(path).isSocket(); 
  ```
Z
zengyawen 已提交
2522 2523


Z
zengyawen 已提交
2524
### isSymbolicLink
Z
zengyawen 已提交
2525

Z
zengyawen 已提交
2526
isSymbolicLink(): boolean
Z
zengyawen 已提交
2527

Z
zhangxingxia 已提交
2528
用于判断文件是否是符号链接。
Z
zengyawen 已提交
2529

2530 2531
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2532
**返回值:**
Z
zhangxingxia 已提交
2533 2534
  | 类型      | 说明              |
  | ------- | --------------- |
Z
zhangxingxia 已提交
2535
  | boolean | 表示文件是否是符号链接。 |
Z
zengyawen 已提交
2536

Z
zhangxingxia 已提交
2537
**示例:**
Z
zhangxingxia 已提交
2538
  ```js
Z
zengyawen 已提交
2539 2540
  let isSymbolicLink = fileio.statSync(path).isSymbolicLink(); 
  ```
Z
zengyawen 已提交
2541 2542


Z
zengyawen 已提交
2543 2544 2545 2546 2547 2548 2549
## Watcher<sup>7+</sup>

Watcher是文件变化监听的实例,调用Watcher.stop()方法(同步或异步)来停止文件监听。


### stop<sup>7+</sup>

2550
stop(): Promise&lt;void&gt;
Z
zengyawen 已提交
2551 2552 2553

以异步方法关闭watcher监听,使用promise形式返回结果。

2554 2555
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2556
**示例:**
Z
zhangxingxia 已提交
2557
  ```js
Z
zengyawen 已提交
2558 2559 2560 2561 2562 2563
  fileio.stop();
  ```


### stop<sup>7+</sup>

2564
stop(callback: AsyncCallback&lt;void&gt;): void
Z
zengyawen 已提交
2565 2566 2567

以异步方法关闭watcher监听,使用callback形式返回结果。

2568 2569
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2570
**参数:**
H
HelloCrease 已提交
2571 2572 2573
  | 参数名      | 类型                        | 必填   | 说明                     |
  | -------- | ------------------------- | ---- | ---------------------- |
  | callback | AsyncCallback&lt;void&gt; | 是    | 以异步方法关闭watcher监听之后的回调。 |
Z
zengyawen 已提交
2574

Z
zhangxingxia 已提交
2575
**示例:**
Z
zhangxingxia 已提交
2576
  ```js
Z
zengyawen 已提交
2577
  fileio.stop(function(err){
Z
zhangxingxia 已提交
2578
      // do something
Z
zengyawen 已提交
2579 2580 2581 2582
  });
  ```


Z
zengyawen 已提交
2583
## Stream<sup>7+</sup>
Z
zengyawen 已提交
2584

Z
zengyawen 已提交
2585 2586 2587 2588 2589 2590 2591 2592 2593
文件流,在调用Stream的方法前,需要先通过createStream()方法(同步或异步)来构建一个Stream实例。


### close<sup>7+</sup>

close(): Promise&lt;void&gt;

异步关闭文件流,使用promise形式返回结果。

2594 2595
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2596
**返回值:**
H
HelloCrease 已提交
2597 2598
  | 类型                  | 说明            |
  | ------------------- | ------------- |
Z
zengyawen 已提交
2599 2600
  | Promise&lt;void&gt; | 表示异步关闭文件流的结果。 |

Z
zhangxingxia 已提交
2601
**示例:**
Z
zhangxingxia 已提交
2602
  ```js
Z
zengyawen 已提交
2603
  let ss= fileio.createStreamSync(path);
Z
zhangxingxia 已提交
2604 2605 2606 2607 2608
  ss.close().then(function(){
      console.info("close fileStream successfully");
  }).catch(function(err){
      console.info("close fileStream  failed with error:"+ err);
  });
Z
zengyawen 已提交
2609 2610 2611 2612 2613 2614 2615 2616 2617
  ```


### close<sup>7+</sup>

close(callback: AsyncCallback&lt;void&gt;): void

异步关闭文件流,使用callback形式返回结果。

2618 2619
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2620
**参数:**
H
HelloCrease 已提交
2621 2622 2623
  | 参数名      | 类型                        | 必填   | 说明            |
  | -------- | ------------------------- | ---- | ------------- |
  | callback | AsyncCallback&lt;void&gt; | 是    | 异步关闭文件流之后的回调。 |
Z
zengyawen 已提交
2624

Z
zhangxingxia 已提交
2625
**示例:**
Z
zhangxingxia 已提交
2626
  ```js
Z
zengyawen 已提交
2627 2628
  let ss= fileio.createStreamSync(path);
  ss.close(function (err) {
Z
zhangxingxia 已提交
2629
      // do something
Z
zengyawen 已提交
2630 2631
  });
  ```
Z
zengyawen 已提交
2632 2633


2634
### closeSync
Z
zengyawen 已提交
2635

Z
zengyawen 已提交
2636
closeSync(): void
Z
zengyawen 已提交
2637

Z
zengyawen 已提交
2638
同步关闭文件流。
Z
zengyawen 已提交
2639

2640 2641
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2642
**示例:**
Z
zhangxingxia 已提交
2643
  ```js
Z
zengyawen 已提交
2644 2645 2646
  let ss= fileio.createStreamSync(path);
  ss.closeSync();
  ```
Z
zengyawen 已提交
2647 2648


Z
zengyawen 已提交
2649 2650 2651 2652 2653 2654
### flush<sup>7+</sup>

flush(): Promise&lt;void&gt;

异步刷新文件流,使用promise形式返回结果。

2655 2656
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2657
**返回值:**
H
HelloCrease 已提交
2658 2659
  | 类型                  | 说明            |
  | ------------------- | ------------- |
Z
zengyawen 已提交
2660 2661
  | Promise&lt;void&gt; | 表示异步刷新文件流的结果。 |

Z
zhangxingxia 已提交
2662
**示例:**
Z
zhangxingxia 已提交
2663
  ```js
Z
zengyawen 已提交
2664
  let ss= fileio.createStreamSync(path);
Z
zhangxingxia 已提交
2665 2666 2667 2668 2669
  ss.flush().then(function (){
      console.info("flush successfully");
  }).catch(function(err){
      console.info("flush failed with error:"+ err);
  });
Z
zengyawen 已提交
2670 2671 2672 2673 2674 2675 2676 2677 2678
  ```


### flush<sup>7+</sup>

flush(callback: AsyncCallback&lt;void&gt;): void

异步刷新文件流,使用callback形式返回结果。

2679 2680
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2681
**参数:**
H
HelloCrease 已提交
2682 2683 2684
  | 参数名      | 类型                        | 必填   | 说明             |
  | -------- | ------------------------- | ---- | -------------- |
  | callback | AsyncCallback&lt;void&gt; | 是    | 异步刷新文件流后的回调函数。 |
Z
zengyawen 已提交
2685

Z
zhangxingxia 已提交
2686
**示例:**
Z
zhangxingxia 已提交
2687
  ```js
Z
zengyawen 已提交
2688 2689
  let ss= fileio.createStreamSync(path);
  ss.flush(function (err) {
Z
zhangxingxia 已提交
2690
      // do something
Z
zengyawen 已提交
2691 2692 2693 2694
  });
  ```


Z
zengyawen 已提交
2695
### flushSync<sup>7+</sup>
Z
zengyawen 已提交
2696

Z
zengyawen 已提交
2697
flushSync(): void
Z
zengyawen 已提交
2698

Z
zengyawen 已提交
2699
同步刷新文件流。
Z
zengyawen 已提交
2700

2701 2702
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2703
**示例:**
Z
zhangxingxia 已提交
2704
  ```js
Z
zengyawen 已提交
2705 2706 2707
  let ss= fileio.createStreamSync(path);
  ss.flushSync();
  ```
Z
zengyawen 已提交
2708 2709


Z
zengyawen 已提交
2710 2711
### write<sup>7+</sup>

2712 2713 2714 2715 2716 2717
write(buffer: ArrayBuffer | string, options?: {
    offset?: number;
    length?: number;
    position?: number;
    encoding?: string;
}): Promise&lt;number&gt;
Z
zengyawen 已提交
2718 2719 2720

以异步方法将数据写入流文件,使用promise形式返回结果。

2721 2722
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2723
**参数:**
H
HelloCrease 已提交
2724 2725 2726
  | 参数名     | 类型                              | 必填   | 说明                                       |
  | ------- | ------------------------------- | ---- | ---------------------------------------- |
  | buffer  | ArrayBuffer&nbsp;\|&nbsp;string | 是    | 待写入文件的数据,可来自缓冲区或字符串。                     |
Z
zhangxingxia 已提交
2727
  | 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。  |
Z
zengyawen 已提交
2728

Z
zhangxingxia 已提交
2729
**返回值:**
H
HelloCrease 已提交
2730 2731
  | 类型                    | 说明       |
  | --------------------- | -------- |
Z
zengyawen 已提交
2732 2733
  | Promise&lt;number&gt; | 实际写入的长度。 |

Z
zhangxingxia 已提交
2734
**示例:**
Z
zhangxingxia 已提交
2735
  ```js
Z
zengyawen 已提交
2736
  let ss= fileio.createStreamSync(fpath, "r+");
Z
zhangxingxia 已提交
2737
  ss.write("hello, world",{offset: 1,length: 5,position: 5,encoding :'utf-8'}).then(function (number){
2738
      console.info("write successfully and size is:"+ number);
Z
zhangxingxia 已提交
2739 2740 2741
  }).catch(function(err){
      console.info("write failed with error:"+ err);
  });
Z
zengyawen 已提交
2742 2743 2744 2745 2746
  ```


### write<sup>7+</sup>

2747 2748 2749 2750 2751 2752
write(buffer: ArrayBuffer | string, options: {
    offset?: number;
    length?: number;
    position?: number;
    encoding?: string;
}, callback: AsyncCallback&lt;number&gt;): void
Z
zengyawen 已提交
2753 2754 2755

以异步方法将数据写入流文件,使用callback形式返回结果。

2756 2757
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2758
**参数:**
Z
update  
zhangxingxia 已提交
2759 2760 2761
  | 参数名   | 类型                            | 必填 | 说明                                                         |
  | -------- | ------------------------------- | ---- | ------------------------------------------------------------ |
  | buffer   | ArrayBuffer&nbsp;\|&nbsp;string | 是   | 待写入文件的数据,可来自缓冲区或字符串。                     |
Z
zhangxingxia 已提交
2762
  | 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。 |
Z
update  
zhangxingxia 已提交
2763
  | callback | AsyncCallback&lt;number&gt;     | 是   | 异步写入完成后执行的回调函数。                               |
Z
zengyawen 已提交
2764

Z
zhangxingxia 已提交
2765
**示例:**
Z
zhangxingxia 已提交
2766
  ```js
Z
zengyawen 已提交
2767 2768
  let ss= fileio.createStreamSync(fpath, "r+");
  ss.write("hello, world", {offset: 1, length: 5, position: 5, encoding :'utf-8'}, function (err, bytesWritten) {
2769
      if (bytesWritten) {
Z
zhangxingxia 已提交
2770
         // do something
2771
         console.info("write successfully and size is:"+ bytesWritten);
Z
zengyawen 已提交
2772 2773 2774 2775 2776
      }
  });
  ```


Z
zengyawen 已提交
2777
### writeSync<sup>7+</sup>
Z
zengyawen 已提交
2778

2779 2780 2781 2782 2783 2784
writeSync(buffer: ArrayBuffer | string, options?: {
    offset?: number;
    length?: number;
    position?: number;
    encoding?: string;
}): number
Z
zengyawen 已提交
2785

Z
zengyawen 已提交
2786
以同步方法将数据写入流文件。
Z
zengyawen 已提交
2787

2788 2789
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2790
**参数:**
H
HelloCrease 已提交
2791 2792 2793
  | 参数名     | 类型                              | 必填   | 说明                                       |
  | ------- | ------------------------------- | ---- | ---------------------------------------- |
  | buffer  | ArrayBuffer&nbsp;\|&nbsp;string | 是    | 待写入文件的数据,可来自缓冲区或字符串。                     |
Z
zhangxingxia 已提交
2794
  | 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。  |
Z
zengyawen 已提交
2795

Z
zhangxingxia 已提交
2796
**返回值:**
H
HelloCrease 已提交
2797 2798
  | 类型     | 说明       |
  | ------ | -------- |
Z
zengyawen 已提交
2799
  | number | 实际写入的长度。 |
Z
zengyawen 已提交
2800

Z
zhangxingxia 已提交
2801
**示例:**
Z
zhangxingxia 已提交
2802
  ```js
Z
zengyawen 已提交
2803
  let ss= fileio.createStreamSync(fpath,"r+");
Z
zengyawen 已提交
2804 2805 2806 2807 2808 2809
  let num = ss.writeSync("hello, world", {offset: 1, length: 5, position: 5, encoding :'utf-8'});
  ```


### read<sup>7+</sup>

2810 2811 2812 2813 2814
read(buffer: ArrayBuffer, options?: {
    position?: number;
    offset?: number;
    length?: number;
}): Promise&lt;ReadOut&gt;
Z
zengyawen 已提交
2815 2816 2817

以异步方法从流文件读取数据,使用promise形式返回结果。

2818 2819
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2820
**参数:**
H
HelloCrease 已提交
2821 2822 2823
  | 参数名     | 类型          | 必填   | 说明                                       |
  | ------- | ----------- | ---- | ---------------------------------------- |
  | buffer  | ArrayBuffer | 是    | 用于读取文件的缓冲区。                              |
Z
zhangxingxia 已提交
2824
  | options | Object      | 否    | 支持如下选项:<br/>-&nbsp;offset,number类型,表示将数据读取到缓冲区的位置,即相对于缓冲区首地址的偏移。可选,默认为0。<br/>-&nbsp;length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度减去偏移长度。<br/>-&nbsp;position,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读。<br/>约束:offset+length<=buffer.size。  |
Z
zengyawen 已提交
2825

Z
zhangxingxia 已提交
2826
**返回值:**
H
HelloCrease 已提交
2827 2828
  | 类型                                 | 说明     |
  | ---------------------------------- | ------ |
2829
  | Promise&lt;[ReadOut](#readout)&gt; | 读取的结果。 |
Z
zengyawen 已提交
2830

Z
zhangxingxia 已提交
2831
**示例:**
Z
zhangxingxia 已提交
2832
  ```js
Z
zengyawen 已提交
2833
  let ss = fileio.createStreamSync(fpath, "r+");
Z
zhangxingxia 已提交
2834 2835
  ss.read(new ArrayBuffer(4096), {offset: 1, length: 5, position: 5}).then(function (readout){
      console.info("read data successfully");
2836
      console.log(String.fromCharCode.apply(null, new Uint8Array(readOut.buffer)));
Z
zhangxingxia 已提交
2837 2838 2839
  }).catch(function(err){
      console.info("read data failed with error:"+ err);
  });
Z
zengyawen 已提交
2840 2841 2842 2843 2844
  ```


### read<sup>7+</sup>

2845 2846 2847 2848 2849
read(buffer: ArrayBuffer, options: {
    position?: number;
    offset?: number;
    length?: number;
}, callback: AsyncCallback&lt;ReadOut&gt;): void
Z
zengyawen 已提交
2850 2851 2852

以异步方法从流文件读取数据,使用callback形式返回结果。

2853 2854
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2855
**参数:**
H
HelloCrease 已提交
2856 2857 2858
  | 参数名      | 类型                                       | 必填   | 说明                                       |
  | -------- | ---------------------------------------- | ---- | ---------------------------------------- |
  | buffer   | ArrayBuffer                              | 是    | 用于读取文件的缓冲区。                              |
Z
zhangxingxia 已提交
2859
  | options  | Object                                   | 否    | 支持如下选项:<br/>-&nbsp;offset,number类型,表示将数据读取到缓冲区的位置,即相对于缓冲区首地址的偏移。可选,默认为0。<br/>-&nbsp;length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度减去偏移长度。<br/>-&nbsp;position,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读。<br/>约束:offset+length<=buffer.size。  |
H
HelloCrease 已提交
2860
  | callback | AsyncCallback&lt;[ReadOut](#readout)&gt; | 是    | 异步从流文件读取数据之后的回调。                         |
Z
zengyawen 已提交
2861

Z
zhangxingxia 已提交
2862
**示例:**
Z
zhangxingxia 已提交
2863
  ```js
Z
zengyawen 已提交
2864 2865
  let ss = fileio.createStreamSync(fpath, "r+");
  ss.read(new ArrayBuffer(4096),{offset: 1, length: 5, position: 5},function (err, readOut) {
2866 2867 2868
      if (readOut) {
          console.info("read data successfully");
          console.log(String.fromCharCode.apply(null, new Uint8Array(readOut.buffer)));
Z
zengyawen 已提交
2869 2870
      }
  });
Z
zengyawen 已提交
2871
  ```
Z
zengyawen 已提交
2872 2873


Z
zengyawen 已提交
2874
### readSync<sup>7+</sup>
Z
zengyawen 已提交
2875

2876 2877 2878 2879 2880
readSync(buffer: ArrayBuffer, options?: {
    position?: number;
    offset?: number;
    length?: number;
}): number
Z
zengyawen 已提交
2881 2882 2883

以同步方法从流文件读取数据。

2884 2885
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2886 2887
**参数:**

H
HelloCrease 已提交
2888 2889 2890
  | 参数名     | 类型          | 必填   | 说明                                       |
  | ------- | ----------- | ---- | ---------------------------------------- |
  | buffer  | ArrayBuffer | 是    | 用于读取文件的缓冲区。                              |
Z
zhangxingxia 已提交
2891 2892 2893
  | options | Object      | 否    | 支持如下选项:<br/>-&nbsp;offset,number类型,表示将数据读取到缓冲区的位置,即相对于缓冲区首地址的偏移。可选,默认为0。<br/>-&nbsp;length,number类型,表示期望读取数据的长度。可选,默认缓冲区长度减去偏移长度。<br/>-&nbsp;position,number类型,表示期望读取文件的位置。可选,默认从当前位置开始读。<br/>约束:offset+length<=buffer.size。  |

**返回值:**
Z
zengyawen 已提交
2894

H
HelloCrease 已提交
2895 2896
  | 类型     | 说明       |
  | ------ | -------- |
Z
zengyawen 已提交
2897
  | number | 实际读取的长度。 |
Z
zengyawen 已提交
2898

Z
zhangxingxia 已提交
2899
**示例:**
Z
zhangxingxia 已提交
2900
  ```js
Z
zengyawen 已提交
2901
  let ss = fileio.createStreamSync(fpath, "r+");
Z
zengyawen 已提交
2902
  let num = ss.readSync(new ArrayBuffer(4096), {offset: 1, length: 5, position: 5});
Z
zengyawen 已提交
2903
  ```
Z
zengyawen 已提交
2904 2905


Z
zengyawen 已提交
2906
## Dir
Z
zengyawen 已提交
2907

Z
zengyawen 已提交
2908 2909 2910 2911 2912 2913 2914 2915 2916
管理目录,在调用Dir的方法前,需要先通过[opendir()](#fileioopendir)方法(同步或异步)来构建一个Dir实例。


### read

read(): Promise&lt;Dirent&gt;

异步读取下一个目录项,使用promise形式返回结果。

2917 2918
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2919
**返回值:**
H
HelloCrease 已提交
2920 2921
  | 类型                               | 说明            |
  | -------------------------------- | ------------- |
Z
zengyawen 已提交
2922 2923
  | Promise&lt;[Dirent](#dirent)&gt; | 表示异步读取目录项的结果。 |

Z
zhangxingxia 已提交
2924
**示例:**
Z
zhangxingxia 已提交
2925
  ```js
H
HelloCrease 已提交
2926
  let dir = fileio.opendirSync(path);
Z
zhangxingxia 已提交
2927
  dir.read().then(function (dirent){
2928
      console.log("read successfully:"+JSON.stringify(dirent));
Z
zhangxingxia 已提交
2929 2930 2931
  }).catch(function(err){
      console.info("read failed with error:"+ err);
  });
Z
zengyawen 已提交
2932 2933 2934 2935 2936 2937 2938 2939 2940
  ```


### read

read(callback: AsyncCallback&lt;Dirent&gt;): void

异步读取下一个目录项,使用callback形式返回结果。

2941 2942
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2943
**参数:**
H
HelloCrease 已提交
2944 2945 2946
  | 参数名      | 类型                                     | 必填   | 说明               |
  | -------- | -------------------------------------- | ---- | ---------------- |
  | callback | AsyncCallback&lt;[Dirent](#dirent)&gt; | 是    | 异步读取下一个目录项之后的回调。 |
Z
zengyawen 已提交
2947

Z
zhangxingxia 已提交
2948
**示例:**
Z
zhangxingxia 已提交
2949
  ```js
H
HelloCrease 已提交
2950
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
2951
  dir.read(function (err, dirent) {
2952
      if (dirent) {
Z
zhangxingxia 已提交
2953
          // do something
2954
          console.log("read successfully:"+JSON.stringify(dirent));
Z
zengyawen 已提交
2955 2956 2957
      }
  });
  ```
Z
zengyawen 已提交
2958 2959


Z
zengyawen 已提交
2960
### readSync
Z
zengyawen 已提交
2961

Z
zengyawen 已提交
2962
readSync(): Dirent
Z
zengyawen 已提交
2963

Z
zengyawen 已提交
2964
同步读取下一个目录项。
Z
zengyawen 已提交
2965

2966 2967
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2968
**返回值:**
H
HelloCrease 已提交
2969 2970
  | 类型                | 说明       |
  | ----------------- | -------- |
Z
zengyawen 已提交
2971
  | [Dirent](#dirent) | 表示一个目录项。 |
Z
zengyawen 已提交
2972

Z
zhangxingxia 已提交
2973
**示例:**
Z
zhangxingxia 已提交
2974
  ```js
H
HelloCrease 已提交
2975
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
2976 2977
  let dirent = dir.readSync();
  ```
Z
zengyawen 已提交
2978 2979


Z
zengyawen 已提交
2980
### closeSync
Z
zengyawen 已提交
2981

Z
zengyawen 已提交
2982
closeSync(): void
Z
zengyawen 已提交
2983

Z
zengyawen 已提交
2984
用于关闭目录。目录被关闭后,Dir中持有的文件描述将被释放,后续将无法从Dir中读取目录项。
Z
zengyawen 已提交
2985

2986 2987
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
2988
**示例:**
Z
zhangxingxia 已提交
2989
  ```js
H
HelloCrease 已提交
2990
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
2991 2992
  dir.closeSync();
  ```
Z
zengyawen 已提交
2993 2994


Z
zengyawen 已提交
2995
## Dirent
Z
zengyawen 已提交
2996

Z
zengyawen 已提交
2997
在调用Dirent的方法前,需要先通过[dir.read()](#read)方法(同步或异步)来构建一个Dirent实例。
Z
zengyawen 已提交
2998

2999
**系统能力**:以下各项对应的系统能力均为SystemCapability.FileManagement.File.FileIO。
Z
zengyawen 已提交
3000

Z
zengyawen 已提交
3001
### 属性
Z
zengyawen 已提交
3002

H
HelloCrease 已提交
3003 3004 3005
| 名称   | 参数类型   | 可读   | 可写   | 说明      |
| ---- | ------ | ---- | ---- | ------- |
| name | string | 是    | 否    | 目录项的名称。 |
Z
zengyawen 已提交
3006 3007


Z
zengyawen 已提交
3008
### isBlockDevice
Z
zengyawen 已提交
3009

Z
zengyawen 已提交
3010
isBlockDevice(): boolean
Z
zengyawen 已提交
3011

Z
zengyawen 已提交
3012
用于判断当前目录项是否是块特殊文件。一个块特殊文件只能以块为粒度进行访问,且访问的时候带缓存。
Z
zengyawen 已提交
3013

3014 3015
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3016
**返回值:**
H
HelloCrease 已提交
3017 3018
  | 类型      | 说明               |
  | ------- | ---------------- |
Z
zengyawen 已提交
3019
  | boolean | 表示当前目录项是否是块特殊设备。 |
Z
zengyawen 已提交
3020

Z
zhangxingxia 已提交
3021
**示例:**
Z
zhangxingxia 已提交
3022
  ```js
H
HelloCrease 已提交
3023
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
3024 3025
  let isBLockDevice = dir.readSync().isBlockDevice();
  ```
Z
zengyawen 已提交
3026 3027


Z
zengyawen 已提交
3028
### isCharacterDevice
Z
zengyawen 已提交
3029

Z
zengyawen 已提交
3030
isCharacterDevice(): boolean
Z
zengyawen 已提交
3031

Z
zengyawen 已提交
3032
用于判断当前目录项是否是字符特殊设备。一个字符特殊设备可进行随机访问,且访问的时候不带缓存。
Z
zengyawen 已提交
3033

3034 3035
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3036
**返回值:**
H
HelloCrease 已提交
3037 3038
  | 类型      | 说明                |
  | ------- | ----------------- |
Z
zengyawen 已提交
3039
  | boolean | 表示当前目录项是否是字符特殊设备。 |
Z
zengyawen 已提交
3040

Z
zhangxingxia 已提交
3041
**示例:**
Z
zhangxingxia 已提交
3042
  ```js
H
HelloCrease 已提交
3043
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
3044 3045
  let isCharacterDevice = dir.readSync().isCharacterDevice(); 
  ```
Z
zengyawen 已提交
3046 3047


Z
zengyawen 已提交
3048
### isDirectory
Z
zengyawen 已提交
3049

Z
zengyawen 已提交
3050
isDirectory(): boolean
Z
zengyawen 已提交
3051

Z
zengyawen 已提交
3052
用于判断当前目录项是否是目录。
Z
zengyawen 已提交
3053

3054 3055
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3056
**返回值:**
H
HelloCrease 已提交
3057 3058
  | 类型      | 说明            |
  | ------- | ------------- |
Z
zengyawen 已提交
3059
  | boolean | 表示当前目录项是否是目录。 |
Z
zengyawen 已提交
3060

Z
zhangxingxia 已提交
3061
**示例:**
Z
zhangxingxia 已提交
3062
  ```js
H
HelloCrease 已提交
3063
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
3064 3065
  let isDirectory = dir.readSync().isDirectory(); 
  ```
Z
zengyawen 已提交
3066 3067


Z
zengyawen 已提交
3068
### isFIFO
Z
zengyawen 已提交
3069

Z
zengyawen 已提交
3070
isFIFO(): boolean
Z
zengyawen 已提交
3071

Z
zengyawen 已提交
3072
用于判断当前目录项是否是命名管道(有时也称为FIFO)。命名管道通常用于进程间通信。
Z
zengyawen 已提交
3073

3074 3075
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3076
**返回值:**
H
HelloCrease 已提交
3077 3078
  | 类型      | 说明              |
  | ------- | --------------- |
Z
zengyawen 已提交
3079
  | boolean | 表示当前目录项是否是FIFO。 |
Z
zengyawen 已提交
3080

Z
zhangxingxia 已提交
3081
**示例:**
Z
zhangxingxia 已提交
3082
  ```js
H
HelloCrease 已提交
3083
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
3084 3085
  let isFIFO = dir.readSync().isFIFO(); 
  ```
Z
zengyawen 已提交
3086 3087


Z
zengyawen 已提交
3088
### isFile
Z
zengyawen 已提交
3089

Z
zengyawen 已提交
3090
isFile(): boolean
Z
zengyawen 已提交
3091

Z
zengyawen 已提交
3092
用于判断当前目录项是否是普通文件。
Z
zengyawen 已提交
3093

3094 3095
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3096
**返回值:**
H
HelloCrease 已提交
3097 3098
  | 类型      | 说明              |
  | ------- | --------------- |
Z
zengyawen 已提交
3099
  | boolean | 表示当前目录项是否是普通文件。 |
Z
zengyawen 已提交
3100

Z
zhangxingxia 已提交
3101
**示例:**
Z
zhangxingxia 已提交
3102
  ```js
H
HelloCrease 已提交
3103
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
3104 3105
  let isFile = dir.readSync().isFile(); 
  ```
Z
zengyawen 已提交
3106 3107


Z
zengyawen 已提交
3108
### isSocket
Z
zengyawen 已提交
3109

Z
zengyawen 已提交
3110
isSocket(): boolean
Z
zengyawen 已提交
3111

Z
zengyawen 已提交
3112
用于判断当前目录项是否是套接字。
Z
zengyawen 已提交
3113

3114 3115
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3116
**返回值:**
H
HelloCrease 已提交
3117 3118
  | 类型      | 说明             |
  | ------- | -------------- |
Z
zengyawen 已提交
3119
  | boolean | 表示当前目录项是否是套接字。 |
Z
zengyawen 已提交
3120

Z
zhangxingxia 已提交
3121
**示例:**
Z
zhangxingxia 已提交
3122
  ```js
Z
zengyawen 已提交
3123 3124 3125
  let dir = fileio.opendirSync(dpath);
  let isSocket = dir.readSync().isSocket(); 
  ```
Z
zengyawen 已提交
3126 3127


Z
zengyawen 已提交
3128
### isSymbolicLink
Z
zengyawen 已提交
3129

Z
zengyawen 已提交
3130
isSymbolicLink(): boolean
Z
zengyawen 已提交
3131

Z
zengyawen 已提交
3132
用于判断当前目录项是否是符号链接。
Z
zengyawen 已提交
3133

3134 3135
**系统能力**:SystemCapability.FileManagement.File.FileIO

Z
zhangxingxia 已提交
3136
**返回值:**
H
HelloCrease 已提交
3137 3138
  | 类型      | 说明              |
  | ------- | --------------- |
Z
zengyawen 已提交
3139
  | boolean | 表示当前目录项是否是符号链接。 |
Z
zengyawen 已提交
3140

Z
zhangxingxia 已提交
3141
**示例:**
Z
zhangxingxia 已提交
3142
  ```js
H
HelloCrease 已提交
3143
  let dir = fileio.opendirSync(path);
Z
zengyawen 已提交
3144 3145
  let isSymbolicLink = dir.readSync().isSymbolicLink();
  ```