js-apis-data-storage.md 23.7 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
> 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。<br/>从API Version 9开始,该接口不再维护,推荐使用新接口 [@ohos.data.preferences](js-apis-data-preferences.md)
Z
zengyawen 已提交
8 9 10


## 导入模块
Z
zengyawen 已提交
11 12

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

Z
zengyawen 已提交
16 17
## 属性

18
**系统能力**:以下各项对应的系统能力均为SystemCapability.DistributedDataManager.Preferences.Core
19

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


26
## dataStorage.getStorageSync
Z
zengyawen 已提交
27 28

getStorageSync(path: string): Storage
Z
zengyawen 已提交
29 30 31

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

32 33
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

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

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

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

49
  var context = featureAbility.getContext()
50 51 52 53 54
  context.getFilesDir((err, path) => {
      if (err) {
          console.error('getFilesDir failed. err: ' + JSON.stringify(err));
          return;
      }
P
PaDoBoo 已提交
55
      console.info('getFilesDir successful. path:' + JSON.stringify(path));
56 57 58 59
      let storage = dataStorage.getStorageSync(path + '/mystore')
      storage.putSync('startup', 'auto')
      storage.flushSync()
  });
Z
zengyawen 已提交
60 61 62
  ```


63
## dataStorage.getStorage
Z
zengyawen 已提交
64 65

getStorage(path: string, callback: AsyncCallback&lt;Storage&gt;): void
Z
zengyawen 已提交
66 67 68

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

69 70
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
71 72 73 74 75 76 77 78 79 80
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | path | string | 是 | 应用程序内部数据存储路径。 |
  | callback | AsyncCallback&lt;[Storage](#storage)&gt; | 是 | 回调函数。 |

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

82
  var context = featureAbility.getContext()
83
  context.getFilesDir((err, path) => {
84
      if (err) {
85
          console.error('getFilesDir failed. err: ' + JSON.stringify(err));
86 87
          return;
      }
P
PaDoBoo 已提交
88
      console.info('getFilesDir successful. path:' + JSON.stringify(path));
89 90 91 92 93 94 95 96 97
      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 已提交
98 99 100
  ```


101
## dataStorage.getStorage
Z
zengyawen 已提交
102 103

getStorage(path: string): Promise&lt;Storage&gt;
Z
zengyawen 已提交
104 105 106

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

107 108
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
109 110 111 112 113 114 115 116 117 118 119 120 121 122
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | path | string | 是 | 应用程序内部数据存储路径。 |

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

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

124
  var context = featureAbility.getContext()
125
  context.getFilesDir((err, path) => {
P
PaDoBoo 已提交
126 127 128 129 130
      if (err) {
          console.info("Get the storage failed, path: " + path + '/mystore')
          return;
      }
      console.info('getFilesDir successful. path:' + JSON.stringify(path));
131 132 133 134 135 136 137 138
      let promisegetSt = dataStorage.getStorage(path + '/mystore')
      promisegetSt.then((storage) => {
          storage.putSync('startup', 'auto')
          storage.flushSync()
      }).catch((err) => {
          console.info("Get the storage failed, path: " + path + '/mystore')
      })
  });
Z
zengyawen 已提交
139 140 141
  ```


142
## dataStorage.deleteStorageSync
Z
zengyawen 已提交
143 144

deleteStorageSync(path: string): void
Z
zengyawen 已提交
145 146 147

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

148 149
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
150 151 152 153 154 155 156 157 158 159 160
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | path | string | 是 | 应用程序内部数据存储路径。 |

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


161
## dataStorage.deleteStorage
Z
zengyawen 已提交
162

163
deleteStorage(path: string, callback: AsyncCallback&lt;void&gt;): void
Z
zengyawen 已提交
164 165 166

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

167 168
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | path | string | 是 | 应用程序内部数据存储路径。 |
  | callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 |

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


187
## dataStorage.deleteStorage
Z
zengyawen 已提交
188 189

deleteStorage(path: string): Promise&lt;void&gt;
Z
zengyawen 已提交
190 191 192

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

193 194
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
195 196 197 198 199 200 201 202 203 204 205 206
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | path | string | 是 | 应用程序内部数据存储路径。 |

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

- 示例:
  ```
207 208
  let promisedelSt = dataStorage.deleteStorage(path + '/mystore')
  promisedelSt.then(() => {
Z
zengyawen 已提交
209 210 211 212 213 214 215
      console.info("Deleted successfully.")
  }).catch((err) => {
      console.info("Deleted failed with err: " + err)
  })
  ```


216
## dataStorage.removeStorageFromCacheSync
Z
zengyawen 已提交
217 218

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

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

Z
zengyawen 已提交
222
此方法为同步方法。
Z
zengyawen 已提交
223

224 225
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
226 227 228 229 230 231 232 233 234 235 236
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | path | string | 是 | 应用程序内部数据存储路径。 |

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


237
## dataStorage.removeStorageFromCache
Z
zengyawen 已提交
238

239
removeStorageFromCache(path: string, callback: AsyncCallback&lt;void&gt;): void
Z
zengyawen 已提交
240

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

Z
zengyawen 已提交
243
此方法为异步方法。
Z
zengyawen 已提交
244

245 246
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
247 248 249 250
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | path | string | 是 | 应用程序内部数据存储路径。 |
251
  | callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 |
Z
zengyawen 已提交
252 253 254 255 256 257 258 259 260 261 262 263 264

- 示例:
  ```
  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.")
  })
  ```


265
## dataStorage.removeStorageFromCache
Z
zengyawen 已提交
266 267

removeStorageFromCache(path: string): Promise&lt;void&gt;
Z
zengyawen 已提交
268

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

此方法为异步方法。

273 274
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
275 276 277 278 279 280 281 282 283 284 285 286
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | path | string | 是 | 应用程序内部数据存储路径。 |

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

- 示例:
  ```
287 288
  let promiserevSt = dataStorage.removeStorageFromCache(path + '/mystore')
  promiserevSt.then(() => {
Z
zengyawen 已提交
289 290 291 292 293 294 295
      console.info("Removed storage from cache successfully.")
  }).catch((err) => {
      console.info("Removed storage from cache failed with err: " + err)
  })
  ```


296
## Storage
Z
zengyawen 已提交
297

Z
zengyawen 已提交
298
提供获取和修改存储数据的接口。
Z
zengyawen 已提交
299 300


301
### getSync
Z
zengyawen 已提交
302 303

getSync(key: string, defValue: ValueType): ValueType
Z
zengyawen 已提交
304 305

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

Z
zengyawen 已提交
307
此方法为同步方法。
Z
zengyawen 已提交
308

309 310
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | 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)
  ```


329
### get
Z
zengyawen 已提交
330 331

get(key: string, defValue: ValueType, callback: AsyncCallback&lt;ValueType&gt;): void
Z
zengyawen 已提交
332 333

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

此方法为异步方法。

337 338
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | key | string | 是 | 要获取的存储key名称。它不能为空。 |
  | defValue | ValueType | 是 | 默认返回值。支持number、string、boolean。 |
  | callback | AsyncCallback&lt;ValueType&gt; | 是 | 回调函数。 |

- 示例:
  ```
  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)
  })
  ```


358
### get
Z
zengyawen 已提交
359 360

get(key: string, defValue: ValueType): Promise&lt;ValueType&gt;
Z
zengyawen 已提交
361

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

Z
zengyawen 已提交
364
此方法为异步方法。
Z
zengyawen 已提交
365

366 367
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
368 369 370 371 372 373 374 375 376 377 378 379 380
- **参数:**
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | key | string | 是 | 要获取的存储key名称。它不能为空。 |
  | defValue | ValueType | 是 | 默认返回值。支持number、string、boolean。 |

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

- 示例:
  ```
381 382
  let promiseget = storage.get('startup', 'default')
  promiseget.then((value) => {
Z
zengyawen 已提交
383 384 385 386 387 388 389
      console.info("The value of startup is " + value)
  }).catch((err) => {
      console.info("Get the value of startup failed with err: " + err)
  })
  ```


390
### putSync
Z
zengyawen 已提交
391 392

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

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

此方法为同步方法。

398 399
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
400 401 402 403 404 405 406 407 408 409 410 411
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | key | string | 是 | 要修改的存储的key。它不能为空。 |
  | value | ValueType | 是 | 存储的新值。支持number、string、boolean。 |

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


412
### put
Z
zengyawen 已提交
413 414

put(key: string, value: ValueType, callback: AsyncCallback&lt;void&gt;): void
Z
zengyawen 已提交
415

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

Z
zengyawen 已提交
418
此方法为异步方法。
Z
zengyawen 已提交
419

420 421
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | key | string | 是 | 要修改的存储的key。它不能为空。 |
  | value | ValueType | 是 | 存储的新值。支持number、string、boolean。 |
  | callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 |

- 示例:
  ```
  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.")
  })
  ```


441
### put
Z
zengyawen 已提交
442 443

put(key: string, value: ValueType): Promise&lt;void&gt;
Z
zengyawen 已提交
444

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

此方法为异步方法。

449 450
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
451 452 453 454 455 456 457 458 459 460 461 462 463
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | key | string | 是 | 要修改的存储的key。它不能为空。 |
  | value | ValueType | 是 | 存储的新值。支持number、string、boolean。 |

- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | Promise&lt;void&gt; | Promise实例,用于异步处理。 |

- 示例:
  ```
464 465
  let promiseput = storage.put('startup', 'auto')
  promiseput.then(() => {
Z
zengyawen 已提交
466 467 468 469 470 471 472
      console.info("Put the value of startup successfully.")
  }).catch((err) => {
      console.info("Put the value of startup failed with err: " + err)
  })
  ```


473
### hasSync
Z
zengyawen 已提交
474 475

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

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

Z
zengyawen 已提交
479
此方法为同步方法。
Z
zengyawen 已提交
480

481 482
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | key | string | 是 | 要获取的存储key名称。它不能为空。 |

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

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


502
### has
Z
zengyawen 已提交
503 504

has(key: string, callback: AsyncCallback&lt;boolean&gt;): boolean
Z
zengyawen 已提交
505

Z
zengyawen 已提交
506
检查存储对象是否包含名为给定key的存储。
Z
zengyawen 已提交
507 508 509

此方法为异步方法。

510 511
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | key | string | 是 | 要获取的存储key名称,不能为空。 |
  | callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。 |

- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | 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.")
      }
  })
  ```


537
### has
Z
zengyawen 已提交
538 539

has(key: string): Promise&lt;boolean&gt;
Z
zengyawen 已提交
540

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

Z
zengyawen 已提交
543
此方法为异步方法。
Z
zengyawen 已提交
544

545 546
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
547 548 549 550 551 552 553 554 555 556 557 558
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | key | string | 是 | 要获取的存储key名称。它不能为空。 |

- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | Promise&lt;boolean&gt; | Promise实例,用于异步处理。 |

- 示例:
  ```
559 560
  let promisehas = storage.has('startup')
  promisehas.then((isExist) => {
Z
zengyawen 已提交
561 562 563 564 565 566 567 568 569
      if (isExist) {
          console.info("The key of startup is contained.")
      }
  }).catch((err) => {
      console.info("Check the key of startup failed with err: " + err)
  })
  ```


570
### deleteSync
Z
zengyawen 已提交
571 572

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

Z
zengyawen 已提交
574
从存储对象中删除名为给定key的存储。
Z
zengyawen 已提交
575 576 577

此方法为同步方法。

578 579
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
580 581 582 583 584 585 586 587 588 589 590
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | key | string | 是 | 要获取的存储key名称。它不能为空。 |

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


591
### delete
Z
zengyawen 已提交
592 593

delete(key: string, callback: AsyncCallback&lt;void&gt;): void
Z
zengyawen 已提交
594

Z
zengyawen 已提交
595
从存储对象中删除名为给定key的存储。
Z
zengyawen 已提交
596 597 598

此方法为异步方法。

599 600
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | key | string | 是 | 要获取的存储key名称,不能为空。 |
  | callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 |

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


619
### delete
Z
zengyawen 已提交
620 621

delete(key: string): Promise&lt;void&gt;
Z
zengyawen 已提交
622 623

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

Z
zengyawen 已提交
625
此方法为异步方法。
Z
zengyawen 已提交
626

627 628
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
629 630 631 632 633 634 635 636 637 638 639 640
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | key | string | 是 | 要获取的存储key名称。 |

- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | Promise&lt;void&gt; | Promise实例,用于异步处理。 |

- 示例:
  ```
641 642
  let promisedel = storage.delete('startup')
  promisedel.then(() => {
Z
zengyawen 已提交
643 644 645 646 647 648 649
      console.info("Deleted startup key successfully.")
  }).catch((err) => {
      console.info("Delete startup key failed with err: " + err)
  })
  ```


650
### flushSync
Z
zengyawen 已提交
651 652

flushSync(): void
Z
zengyawen 已提交
653

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

Z
zengyawen 已提交
656 657
此方法为同步方法。

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

Z
zengyawen 已提交
660 661 662 663
- 示例:
  ```
  storage.flushSync()
  ```
Z
zengyawen 已提交
664 665


666
### flush
Z
zengyawen 已提交
667

Z
zengyawen 已提交
668
flush(callback: AsyncCallback&lt;void&gt;): void
Z
zengyawen 已提交
669 670

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

此方法为异步方法。

674 675
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
676 677 678 679
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 |
Z
zengyawen 已提交
680

Z
zengyawen 已提交
681 682 683 684 685 686 687 688 689 690
- 示例:
  ```
  storage.flush(function (err) {
      if (err) {
          console.info("Flush to file failed with err: " + err)
          return
      }
      console.info("Flushed to file successfully.")
  })
  ```
Z
zengyawen 已提交
691 692


693
### flush
Z
zengyawen 已提交
694

Z
zengyawen 已提交
695
flush(): Promise&lt;void&gt;
Z
zengyawen 已提交
696

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

Z
zengyawen 已提交
699
此方法为异步方法。
Z
zengyawen 已提交
700

701 702
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
703 704 705 706
- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | Promise&lt;void&gt; | Promise实例,用于异步处理。 |
Z
zengyawen 已提交
707

Z
zengyawen 已提交
708 709
- 示例:
  ```
710 711
  let promiseflush = storage.flush()
  promiseflush.then(() => {
Z
zengyawen 已提交
712 713 714 715 716
      console.info("Flushed to file successfully.")
  }).catch((err) => {
      console.info("Flush to file failed with err: " + err)
  })
  ```
Z
zengyawen 已提交
717

Z
zengyawen 已提交
718

719
### clearSync
Z
zengyawen 已提交
720 721

clearSync(): void
Z
zengyawen 已提交
722 723 724 725 726

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

此方法为同步方法。

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

Z
zengyawen 已提交
729 730 731 732
- 示例:
  ```
  storage.clearSync()
  ```
Z
zengyawen 已提交
733 734


735
### clear
Z
zengyawen 已提交
736

Z
zengyawen 已提交
737
clear(callback: AsyncCallback&lt;void&gt;): void
Z
zengyawen 已提交
738 739 740 741 742

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

此方法为异步方法。

743 744
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761
- 参数:
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 |

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


762
### clear
Z
zengyawen 已提交
763 764

clear(): Promise&lt;void&gt;
Z
zengyawen 已提交
765 766 767 768 769

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

此方法为异步方法。

770 771
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
772 773 774 775 776 777 778
- 返回值:
  | 类型 | 说明 |
  | -------- | -------- |
  | Promise&lt;void&gt; | Promise实例,用于异步处理。 |

- 示例:
  ```
779 780
  let promiseclear = storage.clear()
  promiseclear.then(() => {
Z
zengyawen 已提交
781 782 783 784 785 786 787
      console.info("Cleared to file successfully.")
  }).catch((err) => {
      console.info("Clear to file failed with err: " + err)
  })
  ```


788
### on('change')
Z
zengyawen 已提交
789 790 791 792 793

on(type: 'change', callback: Callback&lt;StorageObserver&gt;): void

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

794 795
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812
- 参数:
  | 参数名 | 类型 | 说明 |
  | -------- | -------- | -------- |
  | type | string | 事件类型,固定值'change',表示数据变更。 |
  | callback | Callback&lt;[StorageObserver](#storageobserver)&gt; | 回调对象实例。 |

- 示例:
  ```
  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.
  ```


813
### off('change')
Z
zengyawen 已提交
814 815 816 817 818

off(type: 'change', callback: Callback&lt;StorageObserver&gt;): void

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

819 820
**系统能力**:SystemCapability.DistributedDataManager.Preferences.Core

Z
zengyawen 已提交
821 822 823 824 825 826 827 828 829 830 831 832 833 834 835
- 参数:
  | 参数名 | 类型 | 说明 |
  | -------- | -------- | -------- |
  | type | string | 事件类型,固定值'change',表示数据变更。 |
  | callback | Callback&lt;[StorageObserver](#storageobserver)&gt; | 需要取消的回调对象实例。 |

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


836 837
## StorageObserver

838
**系统能力**:以下各项对应的系统能力均为SystemCapability.DistributedDataManager.Preferences.Core
Z
zengyawen 已提交
839

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