js-apis-data-storage.md 22.9 KB
Newer Older
Z
zengyawen 已提交
1
# 轻量级存储
Z
zengyawen 已提交
2 3 4 5

轻量级存储为应用提供key-value键值型的文件数据处理能力,支持应用对数据进行轻量级存储及查询。数据存储形式为键值对,键的类型为字符串型,值的存储数据类型包括数字型、字符型、布尔型。


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

9
> 从API Version 9开始,该接口不再维护,推荐使用新接口 [@ohos.data.preferences](js-apis-data-preferences.md)
Z
zengyawen 已提交
10 11 12


## 导入模块
Z
zengyawen 已提交
13 14

```
Z
zengyawen 已提交
15
import dataStorage from '@ohos.data.storage'
Z
zengyawen 已提交
16 17
```

Z
zengyawen 已提交
18 19
## 属性

20 21
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
22 23 24 25 26 27
| 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
| MAX_KEY_LENGTH | string | 是 | 否 | key的最大长度限制,大小为80字节。 |
| MAX_VALUE_LENGTH | string | 是 | 否 | string类型value的最大长度限制,大小为8192字节。 |


28
## dataStorage.getStorageSync
Z
zengyawen 已提交
29 30

getStorageSync(path: string): Storage
Z
zengyawen 已提交
31 32 33

读取指定文件,将数据加载到Storage实例,用于数据操作,此方法为同步方法。

34 35
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
36 37 38 39 40 41 42 43 44 45 46 47 48 49
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | path | string | 是 | 应用程序内部数据存储路径。 |

- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | [Storage](#storage) | 获取到要操作的Storage实例,用于进行数据存储操作。 |

- 示例:
  ```
  import dataStorage from '@ohos.data.storage'
  import featureAbility from '@ohos.ability.featureAbility'
50

51 52 53 54 55
  var context = featureAbility.getContext()
  var path = await context.getFilesDir()
  let storage = dataStorage.getStorageSync(path + '/mystore')
  storage.putSync('startup', 'auto')
  storage.flushSync()
Z
zengyawen 已提交
56 57 58
  ```


59
## dataStorage.getStorage
Z
zengyawen 已提交
60 61

getStorage(path: string, callback: AsyncCallback<Storage>): void
Z
zengyawen 已提交
62 63 64

读取指定文件,将数据加载到Storage实例,用于数据操作,使用callback形式返回结果。

65 66
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
67 68 69 70 71 72 73 74 75 76
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | path | string | 是 | 应用程序内部数据存储路径。 |
  | callback | AsyncCallback<[Storage](#storage)> | 是 | 回调函数。 |

- 示例:
  ```
  import dataStorage from '@ohos.data.storage'
  import featureAbility from '@ohos.ability.featureAbility'
77

78 79 80 81 82 83 84 85 86 87
  var context = featureAbility.getContext()
  var path = await context.getFilesDir()
  dataStorage.getStorage(path + '/mystore', function (err, storage) {
      if (err) {
          console.info("Get the storage failed, path: " + path + '/mystore')
          return;
      }
      storage.putSync('startup', 'auto')
      storage.flushSync()
  })
Z
zengyawen 已提交
88 89 90
  ```


91
## dataStorage.getStorage
Z
zengyawen 已提交
92 93

getStorage(path: string): Promise<Storage>
Z
zengyawen 已提交
94 95 96

读取指定文件,将数据加载到Storage实例,用于数据操作,使用Promise方式作为异步方法。

97 98
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
99 100 101 102 103 104 105 106 107 108 109 110 111 112
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | path | string | 是 | 应用程序内部数据存储路径。 |

- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | Promise<[Storage](#storage)> | Promise实例,用于异步获取结果。 |

- 示例:
  ```
  import dataStorage from '@ohos.data.storage'
  import featureAbility from '@ohos.ability.featureAbility'
113

114 115 116 117 118 119 120 121 122
  var context = featureAbility.getContext()
  var path = await context.getFilesDir()
  let promise = dataStorage.getStorage(path + '/mystore')
  promise.then((storage) => {
      storage.putSync('startup', 'auto')
      storage.flushSync()
  }).catch((err) => {
      console.info("Get the storage failed, path: " + path + '/mystore')
  })
Z
zengyawen 已提交
123 124 125
  ```


126
## dataStorage.deleteStorageSync
Z
zengyawen 已提交
127 128

deleteStorageSync(path: string): void
Z
zengyawen 已提交
129 130 131

从内存中移除指定文件对应的Storage单实例,并删除指定文件及其备份文件、损坏文件。删除指定文件时,应用不允许再使用该实例进行数据操作,否则会出现数据一致性问题,此方法为同步方法。

132 133
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
134 135 136 137 138 139 140 141 142 143 144
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | path | string | 是 | 应用程序内部数据存储路径。 |

- 示例:
  ```
  dataStorage.deleteStorageSync(path + '/mystore')
  ```


145
## dataStorage.deleteStorage
Z
zengyawen 已提交
146

147
deleteStorage(path: string, callback: AsyncCallback<void>): void
Z
zengyawen 已提交
148 149 150

从内存中移除指定文件对应的Storage单实例,并删除指定文件及其备份文件、损坏文件。删除指定文件时,应用不允许再使用该实例进行数据操作,否则会出现数据一致性问题,使用callback方式作为异步方法。

151 152
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | path | string | 是 | 应用程序内部数据存储路径。 |
  | callback | AsyncCallback<void> | 是 | 回调函数。 |

- 示例:
  ```
  dataStorage.deleteStorage(path + '/mystore', function (err) {
      if (err) {
          console.info("Deleted failed with err: " + err)
          return
      }
      console.info("Deleted successfully.")
  })
  ```


171
## dataStorage.deleteStorage
Z
zengyawen 已提交
172 173

deleteStorage(path: string): Promise<void>
Z
zengyawen 已提交
174 175 176

从内存中移除指定文件对应的Storage单实例,并删除指定文件及其备份文件、损坏文件。删除指定文件时,应用不允许再使用该实例进行数据操作,否则会出现数据一致性问题,使用promise方式作为异步方法。

177 178
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | path | string | 是 | 应用程序内部数据存储路径。 |

- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | Promise<void> | Promise实例,用于异步获取结果。 |

- 示例:
  ```
  let promise = dataStorage.deleteStorage(path + '/mystore')
  promise.then(() => {
      console.info("Deleted successfully.")
  }).catch((err) => {
      console.info("Deleted failed with err: " + err)
  })
  ```


200
## dataStorage.removeStorageFromCacheSync
Z
zengyawen 已提交
201 202

removeStorageFromCacheSync(path: string): void
Z
zengyawen 已提交
203

Z
zengyawen 已提交
204
从内存中移除指定文件对应的Storage单实例。移除Storage单实例时,应用不允许再使用该实例进行数据操作,否则会出现数据一致性问题。
Z
zengyawen 已提交
205

Z
zengyawen 已提交
206
此方法为同步方法。
Z
zengyawen 已提交
207

208 209
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
210 211 212 213 214 215 216 217 218 219 220
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | path | string | 是 | 应用程序内部数据存储路径。 |

- 示例:
  ```
  dataStorage.removeStorageFromCacheSync(path + '/mystore')
  ```


221
## dataStorage.removeStorageFromCache
Z
zengyawen 已提交
222

223
removeStorageFromCache(path: string, callback: AsyncCallback<void>): void
Z
zengyawen 已提交
224

Z
zengyawen 已提交
225
从内存中移除指定文件对应的Storage单实例。移除Storage单实例时,应用不允许再使用该实例进行数据操作,否则会出现数据一致性问题。
Z
zengyawen 已提交
226

Z
zengyawen 已提交
227
此方法为异步方法。
Z
zengyawen 已提交
228

229 230
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
231 232 233 234
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | path | string | 是 | 应用程序内部数据存储路径。 |
235
  | callback | AsyncCallback<void> | 是 | 回调函数。 |
Z
zengyawen 已提交
236 237 238 239 240 241 242 243 244 245 246 247 248

- 示例:
  ```
  dataStorage.removeStorageFromCache(path + '/mystore', function (err) {
      if (err) {
          console.info("Removed storage from cache failed with err: " + err)
          return
      }
      console.info("Removed storage from cache successfully.")
  })
  ```


249
## dataStorage.removeStorageFromCache
Z
zengyawen 已提交
250 251

removeStorageFromCache(path: string): Promise<void>
Z
zengyawen 已提交
252

Z
zengyawen 已提交
253
从内存中移除指定文件对应的Storage单实例。移除Storage单实例时,应用不允许再使用该实例进行数据操作,否则会出现数据一致性问题。
Z
zengyawen 已提交
254 255 256

此方法为异步方法。

257 258
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | path | string | 是 | 应用程序内部数据存储路径。 |

- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | Promise<void> | Promise实例,用于异步获取结果。 |

- 示例:
  ```
  let promise = dataStorage.removeStorageFromCache(path + '/mystore')
  promise.then(() => {
      console.info("Removed storage from cache successfully.")
  }).catch((err) => {
      console.info("Removed storage from cache failed with err: " + err)
  })
  ```


280
## Storage
Z
zengyawen 已提交
281

Z
zengyawen 已提交
282
提供获取和修改存储数据的接口。
Z
zengyawen 已提交
283 284


285
### getSync
Z
zengyawen 已提交
286 287

getSync(key: string, defValue: ValueType): ValueType
Z
zengyawen 已提交
288 289

获取键对应的值,如果值为null或者非默认值类型,返回默认数据。
Z
zengyawen 已提交
290

Z
zengyawen 已提交
291
此方法为同步方法。
Z
zengyawen 已提交
292

293 294
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | key | string | 是 | 要获取的存储key名称。它不能为空。 |
  | defValue | ValueType | 是 | 给定key的存储不存在,则要返回的默认值。支持number、string、boolean。 |

- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | ValueType | 键对应的值,如果值为null或者非默认值类型,返回默认数据。 |

- 示例:
  ```
  let value = storage.getSync('startup', 'default')
  console.info("The value of startup is " + value)
  ```


313
### get
Z
zengyawen 已提交
314 315

get(key: string, defValue: ValueType, callback: AsyncCallback<ValueType>): void
Z
zengyawen 已提交
316 317

获取键对应的值,如果值为null或者非默认值类型,返回默认数据。
Z
zengyawen 已提交
318 319 320

此方法为异步方法。

321 322
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | key | string | 是 | 要获取的存储key名称。它不能为空。 |
  | defValue | ValueType | 是 | 默认返回值。支持number、string、boolean。 |
  | callback | AsyncCallback<ValueType> | 是 | 回调函数。 |

- 示例:
  ```
  storage.get('startup', 'default', function(err, value) {
      if (err) {
          console.info("Get the value of startup failed with err: " + err)
          return
      }
      console.info("The value of startup is " + value)
  })
  ```


342
### get
Z
zengyawen 已提交
343 344

get(key: string, defValue: ValueType): Promise<ValueType>
Z
zengyawen 已提交
345

Z
zengyawen 已提交
346
获取键对应的值,如果值为null或者非默认值类型,返默认数据。
Z
zengyawen 已提交
347

Z
zengyawen 已提交
348
此方法为异步方法。
Z
zengyawen 已提交
349

350 351
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373
- **参数:**
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | key | string | 是 | 要获取的存储key名称。它不能为空。 |
  | defValue | ValueType | 是 | 默认返回值。支持number、string、boolean。 |

- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | Promise<ValueType> | Promise实例,用于异步获取结果。 |

- 示例:
  ```
  let promise = storage.get('startup', 'default')
  promise.then((value) => {
      console.info("The value of startup is " + value)
  }).catch((err) => {
      console.info("Get the value of startup failed with err: " + err)
  })
  ```


374
### putSync
Z
zengyawen 已提交
375 376

putSync(key: string, value: ValueType): void
Z
zengyawen 已提交
377

Z
zengyawen 已提交
378
首先获取指定文件对应的Storage实例,然后借助Storage API将数据写入Storage实例,通过flush或者flushSync将Storage实例持久化。
Z
zengyawen 已提交
379 380 381

此方法为同步方法。

382 383
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
384 385 386 387 388 389 390 391 392 393 394 395
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | key | string | 是 | 要修改的存储的key。它不能为空。 |
  | value | ValueType | 是 | 存储的新值。支持number、string、boolean。 |

- 示例:
  ```
  storage.putSync('startup', 'auto')
  ```


396
### put
Z
zengyawen 已提交
397 398

put(key: string, value: ValueType, callback: AsyncCallback<void>): void
Z
zengyawen 已提交
399

Z
zengyawen 已提交
400
首先获取指定文件对应的Storage实例,然后借助Storage API将数据写入Storage实例,通过flush或者flushSync将Storage实例持久化。
Z
zengyawen 已提交
401

Z
zengyawen 已提交
402
此方法为异步方法。
Z
zengyawen 已提交
403

404 405
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | key | string | 是 | 要修改的存储的key。它不能为空。 |
  | value | ValueType | 是 | 存储的新值。支持number、string、boolean。 |
  | callback | AsyncCallback<void> | 是 | 回调函数。 |

- 示例:
  ```
  storage.put('startup', 'auto', function (err) {
      if (err) {
          console.info("Put the value of startup failed with err: " + err)
          return
      }
      console.info("Put the value of startup successfully.")
  })
  ```


425
### put
Z
zengyawen 已提交
426 427

put(key: string, value: ValueType): Promise<void>
Z
zengyawen 已提交
428

Z
zengyawen 已提交
429
首先获取指定文件对应的Storage实例,然后借助Storage API将数据写入Storage实例,通过flush或者flushSync将Storage实例持久化。
Z
zengyawen 已提交
430 431 432

此方法为异步方法。

433 434
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | key | string | 是 | 要修改的存储的key。它不能为空。 |
  | value | ValueType | 是 | 存储的新值。支持number、string、boolean。 |

- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | Promise<void> | Promise实例,用于异步处理。 |

- 示例:
  ```
  let promise = storage.put('startup', 'auto')
  promise.then(() => {
      console.info("Put the value of startup successfully.")
  }).catch((err) => {
      console.info("Put the value of startup failed with err: " + err)
  })
  ```


457
### hasSync
Z
zengyawen 已提交
458 459

hasSync(key: string): boolean
Z
zengyawen 已提交
460

Z
zengyawen 已提交
461
检查存储对象是否包含名为给定key的存储。
Z
zengyawen 已提交
462

Z
zengyawen 已提交
463
此方法为同步方法。
Z
zengyawen 已提交
464

465 466
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | key | string | 是 | 要获取的存储key名称。它不能为空。 |

- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | boolean | true 表示存在,false表示不存在。 |

- 示例:
  ```
  let isExist = storage.hasSync('startup')
  if (isExist) {
      console.info("The key of startup is contained.")
  }
  ```


486
### has
Z
zengyawen 已提交
487 488

has(key: string, callback: AsyncCallback<boolean>): boolean
Z
zengyawen 已提交
489

Z
zengyawen 已提交
490
检查存储对象是否包含名为给定key的存储。
Z
zengyawen 已提交
491 492 493

此方法为异步方法。

494 495
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | key | string | 是 | 要获取的存储key名称,不能为空。 |
  | callback | AsyncCallback<boolean> | 是 | 回调函数。 |

- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | boolean | true表示存在,false表示不存在。 |

- 示例:
  ```
  storage.has('startup', function (err, isExist) {
      if (err) {
          console.info("Check the key of startup failed with err: " + err)
          return
      }
      if (isExist) {
          console.info("The key of startup is contained.")
      }
  })
  ```


521
### has
Z
zengyawen 已提交
522 523

has(key: string): Promise<boolean>
Z
zengyawen 已提交
524

Z
zengyawen 已提交
525
检查存储对象是否包含名为给定key的存储。
Z
zengyawen 已提交
526

Z
zengyawen 已提交
527
此方法为异步方法。
Z
zengyawen 已提交
528

529 530
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | key | string | 是 | 要获取的存储key名称。它不能为空。 |

- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | Promise<boolean> | Promise实例,用于异步处理。 |

- 示例:
  ```
  let promise = storage.has('startup')
  promise.then((isExist) => {
      if (isExist) {
          console.info("The key of startup is contained.")
      }
  }).catch((err) => {
      console.info("Check the key of startup failed with err: " + err)
  })
  ```


554
### deleteSync
Z
zengyawen 已提交
555 556

deleteSync(key: string): void
Z
zengyawen 已提交
557

Z
zengyawen 已提交
558
从存储对象中删除名为给定key的存储。
Z
zengyawen 已提交
559 560 561

此方法为同步方法。

562 563
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
564 565 566 567 568 569 570 571 572 573 574
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | key | string | 是 | 要获取的存储key名称。它不能为空。 |

- 示例:
  ```
  storage.deleteSync('startup')
  ```


575
### delete
Z
zengyawen 已提交
576 577

delete(key: string, callback: AsyncCallback<void>): void
Z
zengyawen 已提交
578

Z
zengyawen 已提交
579
从存储对象中删除名为给定key的存储。
Z
zengyawen 已提交
580 581 582

此方法为异步方法。

583 584
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | key | string | 是 | 要获取的存储key名称,不能为空。 |
  | callback | AsyncCallback<void> | 是 | 回调函数。 |

- 示例:
  ```
  storage.delete('startup', function (err) {
      if (err) {
          console.info("Delete startup key failed with err: " + err)
          return
      }
      console.info("Deleted startup key successfully.")
  })
  ```


603
### delete
Z
zengyawen 已提交
604 605

delete(key: string): Promise<void>
Z
zengyawen 已提交
606 607

从存储对象删除名为给定key的存储。
Z
zengyawen 已提交
608

Z
zengyawen 已提交
609
此方法为异步方法。
Z
zengyawen 已提交
610

611 612
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | key | string | 是 | 要获取的存储key名称。 |

- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | Promise<void> | Promise实例,用于异步处理。 |

- 示例:
  ```
  let promise = storage.delete('startup')
  promise.then(() => {
      console.info("Deleted startup key successfully.")
  }).catch((err) => {
      console.info("Delete startup key failed with err: " + err)
  })
  ```


634
### flushSync
Z
zengyawen 已提交
635 636

flushSync(): void
Z
zengyawen 已提交
637

Z
zengyawen 已提交
638
将当前storage对象中的修改保存到当前的storage,并同步存储到文件中。
Z
zengyawen 已提交
639

Z
zengyawen 已提交
640 641
此方法为同步方法。

642 643
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
644 645 646 647
- 示例:
  ```
  storage.flushSync()
  ```
Z
zengyawen 已提交
648 649


650
### flush
Z
zengyawen 已提交
651

Z
zengyawen 已提交
652
flush(callback: AsyncCallback<void>): void
Z
zengyawen 已提交
653 654

将当前storage对象中的修改保存到当前的storage,并异步存储到文件中。
Z
zengyawen 已提交
655 656 657

此方法为异步方法。

658 659
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
660 661 662 663
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | callback | AsyncCallback<void> | 是 | 回调函数。 |
Z
zengyawen 已提交
664

Z
zengyawen 已提交
665 666 667 668 669 670 671 672 673 674
- 示例:
  ```
  storage.flush(function (err) {
      if (err) {
          console.info("Flush to file failed with err: " + err)
          return
      }
      console.info("Flushed to file successfully.")
  })
  ```
Z
zengyawen 已提交
675 676


677
### flush
Z
zengyawen 已提交
678

Z
zengyawen 已提交
679
flush(): Promise<void>
Z
zengyawen 已提交
680

Z
zengyawen 已提交
681
将当前storage对象中的修改保存到当前的storage,并异步存储到文件中。
Z
zengyawen 已提交
682

Z
zengyawen 已提交
683
此方法为异步方法。
Z
zengyawen 已提交
684

685 686
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
687 688 689 690
- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | Promise<void> | Promise实例,用于异步处理。 |
Z
zengyawen 已提交
691

Z
zengyawen 已提交
692 693 694 695 696 697 698 699 700
- 示例:
  ```
  let promise = storage.flush()
  promise.then(() => {
      console.info("Flushed to file successfully.")
  }).catch((err) => {
      console.info("Flush to file failed with err: " + err)
  })
  ```
Z
zengyawen 已提交
701

Z
zengyawen 已提交
702

703
### clearSync
Z
zengyawen 已提交
704 705

clearSync(): void
Z
zengyawen 已提交
706 707 708 709 710

清除此存储对象中的所有存储。

此方法为同步方法。

711 712
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
713 714 715 716
- 示例:
  ```
  storage.clearSync()
  ```
Z
zengyawen 已提交
717 718


719
### clear
Z
zengyawen 已提交
720

Z
zengyawen 已提交
721
clear(callback: AsyncCallback<void>): void
Z
zengyawen 已提交
722 723 724 725 726

清除此存储对象中的所有存储。

此方法为异步方法。

727 728
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | callback | AsyncCallback<void> | 是 | 回调函数。 |

- 示例:
  ```
  storage.clear(function (err) {
      if (err) {
          console.info("Clear to file failed with err: " + err)
          return
      }
      console.info("Cleared to file successfully.")
  })
  ```


746
### clear
Z
zengyawen 已提交
747 748

clear(): Promise<void>
Z
zengyawen 已提交
749 750 751 752 753

清除此存储对象中的所有存储。

此方法为异步方法。

754 755
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771
- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | Promise<void> | Promise实例,用于异步处理。 |

- 示例:
  ```
  let promise = storage.clear()
  promise.then(() => {
      console.info("Cleared to file successfully.")
  }).catch((err) => {
      console.info("Clear to file failed with err: " + err)
  })
  ```


772
### on('change')
Z
zengyawen 已提交
773 774 775 776 777

on(type: 'change', callback: Callback<StorageObserver>): void

订阅数据变更者类需要实现StorageObserver接口,订阅的key的值发生变更后,在执行flush/flushSync方法后,callback方法会被回调。

778 779
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796
- 参数:
  | 参数名 | 类型 | 说明 |
  | -------- | -------- | -------- |
  | type | string | 事件类型,固定值'change',表示数据变更。 |
  | callback | Callback<[StorageObserver](#storageobserver)> | 回调对象实例。 |

- 示例:
  ```
  var observer = function (key) {
      console.info("The key of " + key + " changed.")
  }
  storage.on('change', observer)
  storage.putSync('startup', 'auto')
  storage.flushSync()  // observer will be called.
  ```


797
### off('change')
Z
zengyawen 已提交
798 799 800 801 802

off(type: 'change', callback: Callback<StorageObserver>): void

当不再进行订阅数据变更时,使用此接口取消订阅。

803 804
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
805 806 807 808 809 810 811 812 813 814 815 816 817 818 819
- 参数:
  | 参数名 | 类型 | 说明 |
  | -------- | -------- | -------- |
  | type | string | 事件类型,固定值'change',表示数据变更。 |
  | callback | Callback<[StorageObserver](#storageobserver)> | 需要取消的回调对象实例。 |

- 示例:
  ```
  var observer = function (key) {
      console.info("The key of " + key + " changed.")
  }
  storage.off('change', observer)
  ```


820 821 822
## StorageObserver

**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core
Z
zengyawen 已提交
823

Z
zengyawen 已提交
824 825 826
| 名称 | 参数类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| key | string | 否 | 变更的数据内容。 |