1e41f4b71Sopenharmony_ci# @ohos.data.storage (轻量级存储) 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_ci轻量级存储为应用提供key-value键值型的文件数据处理能力,支持应用对数据进行轻量级存储及查询。数据存储形式为键值对,键的类型为字符串型,值的存储数据类型包括数字型、字符型、布尔型。 4e41f4b71Sopenharmony_ci 5e41f4b71Sopenharmony_ci> **说明:** 6e41f4b71Sopenharmony_ci> 7e41f4b71Sopenharmony_ci> - 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 8e41f4b71Sopenharmony_ci> 9e41f4b71Sopenharmony_ci> - 从API version 9开始,该接口不再维护,推荐使用新接口[`@ohos.data.preferences`](js-apis-data-preferences.md)。 10e41f4b71Sopenharmony_ci 11e41f4b71Sopenharmony_ci 12e41f4b71Sopenharmony_ci## 导入模块 13e41f4b71Sopenharmony_ci 14e41f4b71Sopenharmony_ci```js 15e41f4b71Sopenharmony_ciimport data_storage from '@ohos.data.storage'; 16e41f4b71Sopenharmony_ci``` 17e41f4b71Sopenharmony_ci 18e41f4b71Sopenharmony_ci## 常量 19e41f4b71Sopenharmony_ci 20e41f4b71Sopenharmony_ci**系统能力:** 以下各项对应的系统能力均为SystemCapability.DistributedDataManager.Preferences.Core 21e41f4b71Sopenharmony_ci 22e41f4b71Sopenharmony_ci| 名称 | 类型 | 可读 | 可写 | 说明 | 23e41f4b71Sopenharmony_ci| ---------------- | -------- | ---- | ---- | ------------------------------------- | 24e41f4b71Sopenharmony_ci| MAX_KEY_LENGTH | number | 是 | 否 | key的最大长度限制为80字节。 | 25e41f4b71Sopenharmony_ci| MAX_VALUE_LENGTH | number | 是 | 否 | value的最大长度限制为8192字节。 | 26e41f4b71Sopenharmony_ci 27e41f4b71Sopenharmony_ci 28e41f4b71Sopenharmony_ci## data_storage.getStorageSync 29e41f4b71Sopenharmony_ci 30e41f4b71Sopenharmony_cigetStorageSync(path: string): Storage 31e41f4b71Sopenharmony_ci 32e41f4b71Sopenharmony_ci读取指定文件,将数据加载到Storage实例,用于数据操作。 33e41f4b71Sopenharmony_ci 34e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 35e41f4b71Sopenharmony_ci 36e41f4b71Sopenharmony_ci**参数:** 37e41f4b71Sopenharmony_ci 38e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 39e41f4b71Sopenharmony_ci| ------ | ------ | ---- | -------------------------- | 40e41f4b71Sopenharmony_ci| path | string | 是 | 应用程序内部数据存储路径。 | 41e41f4b71Sopenharmony_ci 42e41f4b71Sopenharmony_ci**返回值:** 43e41f4b71Sopenharmony_ci 44e41f4b71Sopenharmony_ci| 类型 | 说明 | 45e41f4b71Sopenharmony_ci| ------------------- | ------------------------------------------------- | 46e41f4b71Sopenharmony_ci| [Storage](#storage) | 获取到要操作的Storage实例,用于进行数据存储操作。 | 47e41f4b71Sopenharmony_ci 48e41f4b71Sopenharmony_ci**示例:** 49e41f4b71Sopenharmony_ci 50e41f4b71Sopenharmony_ci```js 51e41f4b71Sopenharmony_ciimport featureAbility from '@ohos.ability.featureAbility'; 52e41f4b71Sopenharmony_ci 53e41f4b71Sopenharmony_cilet path; 54e41f4b71Sopenharmony_cilet context = featureAbility.getContext(); 55e41f4b71Sopenharmony_cicontext.getFilesDir().then((filePath) => { 56e41f4b71Sopenharmony_ci path = filePath; 57e41f4b71Sopenharmony_ci console.info("======================>getFilesDirPromise====================>"); 58e41f4b71Sopenharmony_ci 59e41f4b71Sopenharmony_ci let storage = data_storage.getStorageSync(path + '/mystore'); 60e41f4b71Sopenharmony_ci storage.putSync('startup', 'auto'); 61e41f4b71Sopenharmony_ci storage.flushSync(); 62e41f4b71Sopenharmony_ci}); 63e41f4b71Sopenharmony_ci``` 64e41f4b71Sopenharmony_ci 65e41f4b71Sopenharmony_ci 66e41f4b71Sopenharmony_ci## data_storage.getStorage 67e41f4b71Sopenharmony_ci 68e41f4b71Sopenharmony_cigetStorage(path: string, callback: AsyncCallback<Storage>): void 69e41f4b71Sopenharmony_ci 70e41f4b71Sopenharmony_ci读取指定文件,将数据加载到Storage实例,用于数据操作,使用callback方式返回结果,此方法为异步方法。 71e41f4b71Sopenharmony_ci 72e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 73e41f4b71Sopenharmony_ci 74e41f4b71Sopenharmony_ci**参数:** 75e41f4b71Sopenharmony_ci 76e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 77e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | ---- | -------------------------- | 78e41f4b71Sopenharmony_ci| path | string | 是 | 应用程序内部数据存储路径。 | 79e41f4b71Sopenharmony_ci| callback | AsyncCallback<[Storage](#storage)> | 是 | 回调函数。 | 80e41f4b71Sopenharmony_ci 81e41f4b71Sopenharmony_ci**示例:** 82e41f4b71Sopenharmony_ci 83e41f4b71Sopenharmony_ci```js 84e41f4b71Sopenharmony_ciimport featureAbility from '@ohos.ability.featureAbility'; 85e41f4b71Sopenharmony_ci 86e41f4b71Sopenharmony_cilet path; 87e41f4b71Sopenharmony_cilet context = featureAbility.getContext(); 88e41f4b71Sopenharmony_cicontext.getFilesDir().then((filePath) => { 89e41f4b71Sopenharmony_ci path = filePath; 90e41f4b71Sopenharmony_ci console.info("======================>getFilesDirPromise====================>"); 91e41f4b71Sopenharmony_ci 92e41f4b71Sopenharmony_ci data_storage.getStorage(path + '/mystore', function (err, storage) { 93e41f4b71Sopenharmony_ci if (err) { 94e41f4b71Sopenharmony_ci console.info("Failed to get the storage. path: " + path + '/mystore'); 95e41f4b71Sopenharmony_ci return; 96e41f4b71Sopenharmony_ci } 97e41f4b71Sopenharmony_ci storage.putSync('startup', 'auto'); 98e41f4b71Sopenharmony_ci storage.flushSync(); 99e41f4b71Sopenharmony_ci }) 100e41f4b71Sopenharmony_ci}); 101e41f4b71Sopenharmony_ci``` 102e41f4b71Sopenharmony_ci 103e41f4b71Sopenharmony_ci 104e41f4b71Sopenharmony_ci## data_storage.getStorage 105e41f4b71Sopenharmony_ci 106e41f4b71Sopenharmony_cigetStorage(path: string): Promise<Storage> 107e41f4b71Sopenharmony_ci 108e41f4b71Sopenharmony_ci读取指定文件,将数据加载到Storage实例,用于数据操作,使用Promise方式返回结果,此方法为异步方法。 109e41f4b71Sopenharmony_ci 110e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 111e41f4b71Sopenharmony_ci 112e41f4b71Sopenharmony_ci**参数:** 113e41f4b71Sopenharmony_ci 114e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 115e41f4b71Sopenharmony_ci| ------ | ------ | ---- | -------------------------- | 116e41f4b71Sopenharmony_ci| path | string | 是 | 应用程序内部数据存储路径。 | 117e41f4b71Sopenharmony_ci 118e41f4b71Sopenharmony_ci**返回值:** 119e41f4b71Sopenharmony_ci 120e41f4b71Sopenharmony_ci| 类型 | 说明 | 121e41f4b71Sopenharmony_ci| ---------------------------------- | ------------------------------- | 122e41f4b71Sopenharmony_ci| Promise<[Storage](#storage)> | Promise实例,用于异步获取结果。 | 123e41f4b71Sopenharmony_ci 124e41f4b71Sopenharmony_ci**示例:** 125e41f4b71Sopenharmony_ci 126e41f4b71Sopenharmony_ci```js 127e41f4b71Sopenharmony_ciimport featureAbility from '@ohos.ability.featureAbility'; 128e41f4b71Sopenharmony_ci 129e41f4b71Sopenharmony_cilet path; 130e41f4b71Sopenharmony_cilet context = featureAbility.getContext(); 131e41f4b71Sopenharmony_cicontext.getFilesDir().then((filePath) => { 132e41f4b71Sopenharmony_ci path = filePath; 133e41f4b71Sopenharmony_ci console.info("======================>getFilesDirPromise====================>"); 134e41f4b71Sopenharmony_ci 135e41f4b71Sopenharmony_ci let getPromise = data_storage.getStorage(path + '/mystore'); 136e41f4b71Sopenharmony_ci getPromise.then((storage) => { 137e41f4b71Sopenharmony_ci storage.putSync('startup', 'auto'); 138e41f4b71Sopenharmony_ci storage.flushSync(); 139e41f4b71Sopenharmony_ci }).catch((err) => { 140e41f4b71Sopenharmony_ci console.info("Failed to get the storage. path: " + path + '/mystore'); 141e41f4b71Sopenharmony_ci }) 142e41f4b71Sopenharmony_ci}); 143e41f4b71Sopenharmony_ci``` 144e41f4b71Sopenharmony_ci 145e41f4b71Sopenharmony_ci 146e41f4b71Sopenharmony_ci## data_storage.deleteStorageSync 147e41f4b71Sopenharmony_ci 148e41f4b71Sopenharmony_cideleteStorageSync(path: string): void 149e41f4b71Sopenharmony_ci 150e41f4b71Sopenharmony_ci从内存中移除指定文件对应的Storage单实例,并删除指定文件及其备份文件、损坏文件。删除指定文件时,应用不允许再使用该实例进行数据操作,否则会出现数据一致性问题。 151e41f4b71Sopenharmony_ci 152e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 153e41f4b71Sopenharmony_ci 154e41f4b71Sopenharmony_ci**参数:** 155e41f4b71Sopenharmony_ci 156e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 157e41f4b71Sopenharmony_ci| ------ | ------ | ---- | -------------------------- | 158e41f4b71Sopenharmony_ci| path | string | 是 | 应用程序内部数据存储路径。 | 159e41f4b71Sopenharmony_ci 160e41f4b71Sopenharmony_ci**示例:** 161e41f4b71Sopenharmony_ci 162e41f4b71Sopenharmony_ci```js 163e41f4b71Sopenharmony_ciimport featureAbility from '@ohos.ability.featureAbility'; 164e41f4b71Sopenharmony_ci 165e41f4b71Sopenharmony_cilet path; 166e41f4b71Sopenharmony_cilet context = featureAbility.getContext(); 167e41f4b71Sopenharmony_cicontext.getFilesDir().then((filePath) => { 168e41f4b71Sopenharmony_ci path = filePath; 169e41f4b71Sopenharmony_ci console.info("======================>getFilesDirPromise====================>"); 170e41f4b71Sopenharmony_ci 171e41f4b71Sopenharmony_ci data_storage.deleteStorageSync(path + '/mystore'); 172e41f4b71Sopenharmony_ci}); 173e41f4b71Sopenharmony_ci``` 174e41f4b71Sopenharmony_ci 175e41f4b71Sopenharmony_ci## data_storage.deleteStorage 176e41f4b71Sopenharmony_ci 177e41f4b71Sopenharmony_cideleteStorage(path: string, callback: AsyncCallback<void>): void 178e41f4b71Sopenharmony_ci 179e41f4b71Sopenharmony_ci从内存中移除指定文件对应的Storage单实例,并删除指定文件及其备份文件、损坏文件。删除指定文件时,应用不允许再使用该实例进行数据操作,否则会出现数据一致性问题,使用callback方式返回结果,此方法为异步方法。 180e41f4b71Sopenharmony_ci 181e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 182e41f4b71Sopenharmony_ci 183e41f4b71Sopenharmony_ci**参数:** 184e41f4b71Sopenharmony_ci 185e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 186e41f4b71Sopenharmony_ci| -------- | ------------------------- | ---- | -------------------------- | 187e41f4b71Sopenharmony_ci| path | string | 是 | 应用程序内部数据存储路径。 | 188e41f4b71Sopenharmony_ci| callback | AsyncCallback<void> | 是 | 回调函数。 | 189e41f4b71Sopenharmony_ci 190e41f4b71Sopenharmony_ci**示例:** 191e41f4b71Sopenharmony_ci 192e41f4b71Sopenharmony_ci```js 193e41f4b71Sopenharmony_ciimport featureAbility from '@ohos.ability.featureAbility'; 194e41f4b71Sopenharmony_ci 195e41f4b71Sopenharmony_cilet path; 196e41f4b71Sopenharmony_cilet context = featureAbility.getContext(); 197e41f4b71Sopenharmony_cicontext.getFilesDir().then((filePath) => { 198e41f4b71Sopenharmony_ci path = filePath; 199e41f4b71Sopenharmony_ci console.info("======================>getFilesDirPromise====================>"); 200e41f4b71Sopenharmony_ci 201e41f4b71Sopenharmony_ci data_storage.deleteStorage(path + '/mystore', function (err) { 202e41f4b71Sopenharmony_ci if (err) { 203e41f4b71Sopenharmony_ci console.info("Failed to delete the storage with err: " + err); 204e41f4b71Sopenharmony_ci return; 205e41f4b71Sopenharmony_ci } 206e41f4b71Sopenharmony_ci console.info("Succeeded in deleting the storage."); 207e41f4b71Sopenharmony_ci }) 208e41f4b71Sopenharmony_ci}); 209e41f4b71Sopenharmony_ci``` 210e41f4b71Sopenharmony_ci 211e41f4b71Sopenharmony_ci 212e41f4b71Sopenharmony_ci## data_storage.deleteStorage 213e41f4b71Sopenharmony_ci 214e41f4b71Sopenharmony_cideleteStorage(path: string): Promise<void> 215e41f4b71Sopenharmony_ci 216e41f4b71Sopenharmony_ci从内存中移除指定文件对应的Storage单实例,并删除指定文件及其备份文件、损坏文件。删除指定文件时,应用不允许再使用该实例进行数据操作,否则会出现数据一致性问题,使用promise方式返回结果,此方法为异步方法。 217e41f4b71Sopenharmony_ci 218e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 219e41f4b71Sopenharmony_ci 220e41f4b71Sopenharmony_ci**参数:** 221e41f4b71Sopenharmony_ci 222e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 223e41f4b71Sopenharmony_ci| ------ | ------ | ---- | -------------------------- | 224e41f4b71Sopenharmony_ci| path | string | 是 | 应用程序内部数据存储路径。 | 225e41f4b71Sopenharmony_ci 226e41f4b71Sopenharmony_ci**返回值:** 227e41f4b71Sopenharmony_ci 228e41f4b71Sopenharmony_ci| 类型 | 说明 | 229e41f4b71Sopenharmony_ci| ------------------- | ------------------------------- | 230e41f4b71Sopenharmony_ci| Promise<void> | Promise实例,用于异步获取结果。 | 231e41f4b71Sopenharmony_ci 232e41f4b71Sopenharmony_ci**示例:** 233e41f4b71Sopenharmony_ci 234e41f4b71Sopenharmony_ci```js 235e41f4b71Sopenharmony_ciimport featureAbility from '@ohos.ability.featureAbility'; 236e41f4b71Sopenharmony_ci 237e41f4b71Sopenharmony_cilet path; 238e41f4b71Sopenharmony_cilet context = featureAbility.getContext(); 239e41f4b71Sopenharmony_cicontext.getFilesDir().then((filePath) => { 240e41f4b71Sopenharmony_ci path = filePath; 241e41f4b71Sopenharmony_ci console.info("======================>getFilesDirPromise====================>"); 242e41f4b71Sopenharmony_ci 243e41f4b71Sopenharmony_ci let promisedelSt = data_storage.deleteStorage(path + '/mystore'); 244e41f4b71Sopenharmony_ci promisedelSt.then(() => { 245e41f4b71Sopenharmony_ci console.info("Succeeded in deleting the storage."); 246e41f4b71Sopenharmony_ci }).catch((err) => { 247e41f4b71Sopenharmony_ci console.info("Failed to delete the storage with err: " + err); 248e41f4b71Sopenharmony_ci }) 249e41f4b71Sopenharmony_ci}); 250e41f4b71Sopenharmony_ci``` 251e41f4b71Sopenharmony_ci 252e41f4b71Sopenharmony_ci 253e41f4b71Sopenharmony_ci## data_storage.removeStorageFromCacheSync 254e41f4b71Sopenharmony_ci 255e41f4b71Sopenharmony_ciremoveStorageFromCacheSync(path: string): void 256e41f4b71Sopenharmony_ci 257e41f4b71Sopenharmony_ci从内存中移除指定文件对应的Storage单实例。移除Storage单实例时,应用不允许再使用该实例进行数据操作,否则会出现数据一致性问题。 258e41f4b71Sopenharmony_ci 259e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 260e41f4b71Sopenharmony_ci 261e41f4b71Sopenharmony_ci**参数:** 262e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 263e41f4b71Sopenharmony_ci| ------ | ------ | ---- | -------------------------- | 264e41f4b71Sopenharmony_ci| path | string | 是 | 应用程序内部数据存储路径。 | 265e41f4b71Sopenharmony_ci 266e41f4b71Sopenharmony_ci**示例:** 267e41f4b71Sopenharmony_ci 268e41f4b71Sopenharmony_ci```js 269e41f4b71Sopenharmony_ciimport featureAbility from '@ohos.ability.featureAbility'; 270e41f4b71Sopenharmony_ci 271e41f4b71Sopenharmony_cilet path; 272e41f4b71Sopenharmony_cilet context = featureAbility.getContext(); 273e41f4b71Sopenharmony_cicontext.getFilesDir().then((filePath) => { 274e41f4b71Sopenharmony_ci path = filePath; 275e41f4b71Sopenharmony_ci console.info("======================>getFilesDirPromise====================>"); 276e41f4b71Sopenharmony_ci 277e41f4b71Sopenharmony_ci data_storage.removeStorageFromCacheSync(path + '/mystore'); 278e41f4b71Sopenharmony_ci}); 279e41f4b71Sopenharmony_ci``` 280e41f4b71Sopenharmony_ci 281e41f4b71Sopenharmony_ci 282e41f4b71Sopenharmony_ci## data_storage.removeStorageFromCache 283e41f4b71Sopenharmony_ci 284e41f4b71Sopenharmony_ciremoveStorageFromCache(path: string, callback: AsyncCallback<void>): void 285e41f4b71Sopenharmony_ci 286e41f4b71Sopenharmony_ci从内存中移除指定文件对应的Storage单实例。移除Storage单实例时,应用不允许再使用该实例进行数据操作,否则会出现数据一致性问题。使用callback方式返回结果,此方法为异步方法。 287e41f4b71Sopenharmony_ci 288e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 289e41f4b71Sopenharmony_ci 290e41f4b71Sopenharmony_ci**参数:** 291e41f4b71Sopenharmony_ci 292e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 293e41f4b71Sopenharmony_ci| -------- | ------------------------- | ---- | -------------------------- | 294e41f4b71Sopenharmony_ci| path | string | 是 | 应用程序内部数据存储路径。 | 295e41f4b71Sopenharmony_ci| callback | AsyncCallback<void> | 是 | 回调函数。 | 296e41f4b71Sopenharmony_ci 297e41f4b71Sopenharmony_ci**示例:** 298e41f4b71Sopenharmony_ci 299e41f4b71Sopenharmony_ci```js 300e41f4b71Sopenharmony_ciimport featureAbility from '@ohos.ability.featureAbility'; 301e41f4b71Sopenharmony_ci 302e41f4b71Sopenharmony_cilet path; 303e41f4b71Sopenharmony_cilet context = featureAbility.getContext(); 304e41f4b71Sopenharmony_cicontext.getFilesDir().then((filePath) => { 305e41f4b71Sopenharmony_ci path = filePath; 306e41f4b71Sopenharmony_ci console.info("======================>getFilesDirPromise====================>"); 307e41f4b71Sopenharmony_ci 308e41f4b71Sopenharmony_ci data_storage.removeStorageFromCache(path + '/mystore', function (err) { 309e41f4b71Sopenharmony_ci if (err) { 310e41f4b71Sopenharmony_ci console.info("Failed to remove storage from cache with err: " + err); 311e41f4b71Sopenharmony_ci return; 312e41f4b71Sopenharmony_ci } 313e41f4b71Sopenharmony_ci console.info("Succeeded in removing storage from cache."); 314e41f4b71Sopenharmony_ci }) 315e41f4b71Sopenharmony_ci}); 316e41f4b71Sopenharmony_ci``` 317e41f4b71Sopenharmony_ci 318e41f4b71Sopenharmony_ci 319e41f4b71Sopenharmony_ci## data_storage.removeStorageFromCache 320e41f4b71Sopenharmony_ci 321e41f4b71Sopenharmony_ciremoveStorageFromCache(path: string): Promise<void> 322e41f4b71Sopenharmony_ci 323e41f4b71Sopenharmony_ci从内存中移除指定文件对应的Storage单实例。移除Storage单实例时,应用不允许再使用该实例进行数据操作,否则会出现数据一致性问题。使用Promise方式返回结果,此方法为异步方法。 324e41f4b71Sopenharmony_ci 325e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 326e41f4b71Sopenharmony_ci 327e41f4b71Sopenharmony_ci**参数:** 328e41f4b71Sopenharmony_ci 329e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 330e41f4b71Sopenharmony_ci| ------ | ------ | ---- | -------------------------- | 331e41f4b71Sopenharmony_ci| path | string | 是 | 应用程序内部数据存储路径。 | 332e41f4b71Sopenharmony_ci 333e41f4b71Sopenharmony_ci**返回值:** 334e41f4b71Sopenharmony_ci 335e41f4b71Sopenharmony_ci| 类型 | 说明 | 336e41f4b71Sopenharmony_ci| ------------------- | ------------------------------- | 337e41f4b71Sopenharmony_ci| Promise<void> | Promise实例,用于异步获取结果。 | 338e41f4b71Sopenharmony_ci 339e41f4b71Sopenharmony_ci**示例:** 340e41f4b71Sopenharmony_ci 341e41f4b71Sopenharmony_ci```js 342e41f4b71Sopenharmony_ciimport featureAbility from '@ohos.ability.featureAbility'; 343e41f4b71Sopenharmony_ci 344e41f4b71Sopenharmony_cilet path; 345e41f4b71Sopenharmony_cilet context = featureAbility.getContext(); 346e41f4b71Sopenharmony_cicontext.getFilesDir().then((filePath) => { 347e41f4b71Sopenharmony_ci path = filePath; 348e41f4b71Sopenharmony_ci console.info("======================>getFilesDirPromise====================>"); 349e41f4b71Sopenharmony_ci 350e41f4b71Sopenharmony_ci let promiserevSt = data_storage.removeStorageFromCache(path + '/mystore') 351e41f4b71Sopenharmony_ci promiserevSt.then(() => { 352e41f4b71Sopenharmony_ci console.info("Succeeded in removing storage from cache."); 353e41f4b71Sopenharmony_ci }).catch((err) => { 354e41f4b71Sopenharmony_ci console.info("Failed to remove storage from cache with err: " + err); 355e41f4b71Sopenharmony_ci }) 356e41f4b71Sopenharmony_ci}); 357e41f4b71Sopenharmony_ci``` 358e41f4b71Sopenharmony_ci 359e41f4b71Sopenharmony_ci## Storage 360e41f4b71Sopenharmony_ci 361e41f4b71Sopenharmony_ci提供获取和修改存储数据的接口。 362e41f4b71Sopenharmony_ci 363e41f4b71Sopenharmony_ci下列接口都需先使用[data_storage.getStorage](#data_storagegetstorage)或[data_storage.getStorageSync](#data_storagegetstoragesync)获取到Storage实例,再通过此实例调用对应接口。 364e41f4b71Sopenharmony_ci 365e41f4b71Sopenharmony_ci### getSync 366e41f4b71Sopenharmony_ci 367e41f4b71Sopenharmony_cigetSync(key: string, defValue: ValueType): ValueType 368e41f4b71Sopenharmony_ci 369e41f4b71Sopenharmony_ci获取键对应的值,如果值为null或者非默认值类型,返回默认数据defValue。 370e41f4b71Sopenharmony_ci 371e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 372e41f4b71Sopenharmony_ci 373e41f4b71Sopenharmony_ci**参数:** 374e41f4b71Sopenharmony_ci 375e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 376e41f4b71Sopenharmony_ci| -------- | ----------------------- | ---- | ------------------------------------------------------------ | 377e41f4b71Sopenharmony_ci| key | string | 是 | 要获取的存储key名称,不能为空。 | 378e41f4b71Sopenharmony_ci| defValue | [ValueType](#valuetype) | 是 | 给定key的存储不存在,则要返回的默认值。支持number、string、boolean。 | 379e41f4b71Sopenharmony_ci 380e41f4b71Sopenharmony_ci**返回值:** 381e41f4b71Sopenharmony_ci 382e41f4b71Sopenharmony_ci| 类型 | 说明 | 383e41f4b71Sopenharmony_ci| --------- | -------------------------------------------------------- | 384e41f4b71Sopenharmony_ci| ValueType | 键对应的值,如果值为null或者非默认值类型,返回默认数据。 | 385e41f4b71Sopenharmony_ci 386e41f4b71Sopenharmony_ci**示例:** 387e41f4b71Sopenharmony_ci 388e41f4b71Sopenharmony_ci```js 389e41f4b71Sopenharmony_cilet value = storage.getSync('startup', 'default'); 390e41f4b71Sopenharmony_ciconsole.info("The value of startup is " + value); 391e41f4b71Sopenharmony_ci``` 392e41f4b71Sopenharmony_ci 393e41f4b71Sopenharmony_ci 394e41f4b71Sopenharmony_ci### get 395e41f4b71Sopenharmony_ci 396e41f4b71Sopenharmony_ciget(key: string, defValue: ValueType, callback: AsyncCallback<ValueType>): void 397e41f4b71Sopenharmony_ci 398e41f4b71Sopenharmony_ci获取键对应的值,如果值为null或者非默认值类型,返回默认数据defValue。使用callback方式返回结果,此方法为异步方法。 399e41f4b71Sopenharmony_ci 400e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 401e41f4b71Sopenharmony_ci 402e41f4b71Sopenharmony_ci**参数:** 403e41f4b71Sopenharmony_ci 404e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 405e41f4b71Sopenharmony_ci| -------- | ------------------------------ | ---- | ----------------------------------------- | 406e41f4b71Sopenharmony_ci| key | string | 是 | 要获取的存储key名称,不能为空。 | 407e41f4b71Sopenharmony_ci| defValue | [ValueType](#valuetype) | 是 | 默认返回值。支持number、string、boolean。 | 408e41f4b71Sopenharmony_ci| callback | AsyncCallback<ValueType> | 是 | 回调函数。 | 409e41f4b71Sopenharmony_ci 410e41f4b71Sopenharmony_ci**示例:** 411e41f4b71Sopenharmony_ci 412e41f4b71Sopenharmony_ci```js 413e41f4b71Sopenharmony_cistorage.get('startup', 'default', function(err, value) { 414e41f4b71Sopenharmony_ci if (err) { 415e41f4b71Sopenharmony_ci console.info("Failed to get the value of startup with err: " + err); 416e41f4b71Sopenharmony_ci return; 417e41f4b71Sopenharmony_ci } 418e41f4b71Sopenharmony_ci console.info("The value of startup is " + value); 419e41f4b71Sopenharmony_ci}) 420e41f4b71Sopenharmony_ci``` 421e41f4b71Sopenharmony_ci 422e41f4b71Sopenharmony_ci 423e41f4b71Sopenharmony_ci### get 424e41f4b71Sopenharmony_ci 425e41f4b71Sopenharmony_ciget(key: string, defValue: ValueType): Promise<ValueType> 426e41f4b71Sopenharmony_ci 427e41f4b71Sopenharmony_ci获取键对应的值,如果值为null或者非默认值类型,返回默认数据defValue。使用Promise方式返回结果,此方法为异步方法。 428e41f4b71Sopenharmony_ci 429e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 430e41f4b71Sopenharmony_ci 431e41f4b71Sopenharmony_ci**参数:** 432e41f4b71Sopenharmony_ci 433e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 434e41f4b71Sopenharmony_ci| -------- | ----------------------- | ---- | ----------------------------------------- | 435e41f4b71Sopenharmony_ci| key | string | 是 | 要获取的存储key名称,不能为空。 | 436e41f4b71Sopenharmony_ci| defValue | [ValueType](#valuetype) | 是 | 默认返回值。支持number、string、boolean。 | 437e41f4b71Sopenharmony_ci 438e41f4b71Sopenharmony_ci**返回值:** 439e41f4b71Sopenharmony_ci 440e41f4b71Sopenharmony_ci| 类型 | 说明 | 441e41f4b71Sopenharmony_ci| ------------------------ | ------------------------------- | 442e41f4b71Sopenharmony_ci| Promise<ValueType> | Promise实例,用于异步获取结果。 | 443e41f4b71Sopenharmony_ci 444e41f4b71Sopenharmony_ci**示例:** 445e41f4b71Sopenharmony_ci 446e41f4b71Sopenharmony_ci```js 447e41f4b71Sopenharmony_cilet promiseget = storage.get('startup', 'default'); 448e41f4b71Sopenharmony_cipromiseget.then((value) => { 449e41f4b71Sopenharmony_ci console.info("The value of startup is " + value) 450e41f4b71Sopenharmony_ci}).catch((err) => { 451e41f4b71Sopenharmony_ci console.info("Failed to get the value of startup with err: " + err); 452e41f4b71Sopenharmony_ci}) 453e41f4b71Sopenharmony_ci``` 454e41f4b71Sopenharmony_ci 455e41f4b71Sopenharmony_ci 456e41f4b71Sopenharmony_ci### putSync 457e41f4b71Sopenharmony_ci 458e41f4b71Sopenharmony_ciputSync(key: string, value: ValueType): void 459e41f4b71Sopenharmony_ci 460e41f4b71Sopenharmony_ci首先获取指定文件对应的Storage实例,然后借助Storage API将数据写入Storage实例,通过flush或者flushSync将Storage实例持久化。 461e41f4b71Sopenharmony_ci 462e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 463e41f4b71Sopenharmony_ci 464e41f4b71Sopenharmony_ci**参数:** 465e41f4b71Sopenharmony_ci 466e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 467e41f4b71Sopenharmony_ci| ------ | ----------------------- | ---- | ----------------------------------------- | 468e41f4b71Sopenharmony_ci| key | string | 是 | 要修改的存储的key,不能为空。 | 469e41f4b71Sopenharmony_ci| value | [ValueType](#valuetype) | 是 | 存储的新值。支持number、string、boolean。 | 470e41f4b71Sopenharmony_ci 471e41f4b71Sopenharmony_ci**示例:** 472e41f4b71Sopenharmony_ci 473e41f4b71Sopenharmony_ci```js 474e41f4b71Sopenharmony_cistorage.putSync('startup', 'auto'); 475e41f4b71Sopenharmony_ci``` 476e41f4b71Sopenharmony_ci 477e41f4b71Sopenharmony_ci 478e41f4b71Sopenharmony_ci### put 479e41f4b71Sopenharmony_ci 480e41f4b71Sopenharmony_ciput(key: string, value: ValueType, callback: AsyncCallback<void>): void 481e41f4b71Sopenharmony_ci 482e41f4b71Sopenharmony_ci首先获取指定文件对应的Storage实例,然后借助Storage API将数据写入Storage实例,通过flush或者flushSync将Storage实例持久化。使用callback方式返回结果,此方法为异步方法。 483e41f4b71Sopenharmony_ci 484e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 485e41f4b71Sopenharmony_ci 486e41f4b71Sopenharmony_ci**参数:** 487e41f4b71Sopenharmony_ci 488e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 489e41f4b71Sopenharmony_ci| -------- | ------------------------- | ---- | ----------------------------------------- | 490e41f4b71Sopenharmony_ci| key | string | 是 | 要修改的存储的key,不能为空。 | 491e41f4b71Sopenharmony_ci| value | [ValueType](#valuetype) | 是 | 存储的新值。支持number、string、boolean。 | 492e41f4b71Sopenharmony_ci| callback | AsyncCallback<void> | 是 | 回调函数。 | 493e41f4b71Sopenharmony_ci 494e41f4b71Sopenharmony_ci**示例:** 495e41f4b71Sopenharmony_ci 496e41f4b71Sopenharmony_ci```js 497e41f4b71Sopenharmony_cistorage.put('startup', 'auto', function (err) { 498e41f4b71Sopenharmony_ci if (err) { 499e41f4b71Sopenharmony_ci console.info("Failed to put the value of startup with err: " + err); 500e41f4b71Sopenharmony_ci return; 501e41f4b71Sopenharmony_ci } 502e41f4b71Sopenharmony_ci console.info("Succeeded in putting the value of startup."); 503e41f4b71Sopenharmony_ci}) 504e41f4b71Sopenharmony_ci``` 505e41f4b71Sopenharmony_ci 506e41f4b71Sopenharmony_ci 507e41f4b71Sopenharmony_ci### put 508e41f4b71Sopenharmony_ci 509e41f4b71Sopenharmony_ciput(key: string, value: ValueType): Promise<void> 510e41f4b71Sopenharmony_ci 511e41f4b71Sopenharmony_ci首先获取指定文件对应的Storage实例,然后借助Storage API将数据写入Storage实例,通过flush或者flushSync将Storage实例持久化。使用Promise方式返回结果,此方法为异步方法。 512e41f4b71Sopenharmony_ci 513e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 514e41f4b71Sopenharmony_ci 515e41f4b71Sopenharmony_ci**参数:** 516e41f4b71Sopenharmony_ci 517e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 518e41f4b71Sopenharmony_ci| ------ | ----------------------- | ---- | ----------------------------------------- | 519e41f4b71Sopenharmony_ci| key | string | 是 | 要修改的存储的key,不能为空。 | 520e41f4b71Sopenharmony_ci| value | [ValueType](#valuetype) | 是 | 存储的新值。支持number、string、boolean。 | 521e41f4b71Sopenharmony_ci 522e41f4b71Sopenharmony_ci**返回值:** 523e41f4b71Sopenharmony_ci 524e41f4b71Sopenharmony_ci| 类型 | 说明 | 525e41f4b71Sopenharmony_ci| ------------------- | --------------------------- | 526e41f4b71Sopenharmony_ci| Promise<void> | Promise实例,用于异步处理。 | 527e41f4b71Sopenharmony_ci 528e41f4b71Sopenharmony_ci**示例:** 529e41f4b71Sopenharmony_ci 530e41f4b71Sopenharmony_ci```js 531e41f4b71Sopenharmony_cilet promiseput = storage.put('startup', 'auto'); 532e41f4b71Sopenharmony_cipromiseput.then(() => { 533e41f4b71Sopenharmony_ci console.info("Succeeded in putting the value of startup."); 534e41f4b71Sopenharmony_ci}).catch((err) => { 535e41f4b71Sopenharmony_ci console.info("Failed to put the value of startup with err: " + err); 536e41f4b71Sopenharmony_ci}) 537e41f4b71Sopenharmony_ci``` 538e41f4b71Sopenharmony_ci 539e41f4b71Sopenharmony_ci 540e41f4b71Sopenharmony_ci### hasSync 541e41f4b71Sopenharmony_ci 542e41f4b71Sopenharmony_cihasSync(key: string): boolean 543e41f4b71Sopenharmony_ci 544e41f4b71Sopenharmony_ci检查存储对象是否包含名为给定key的存储。 545e41f4b71Sopenharmony_ci 546e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 547e41f4b71Sopenharmony_ci 548e41f4b71Sopenharmony_ci**参数:** 549e41f4b71Sopenharmony_ci 550e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 551e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ------------------------------- | 552e41f4b71Sopenharmony_ci| key | string | 是 | 要获取的存储key名称,不能为空。 | 553e41f4b71Sopenharmony_ci 554e41f4b71Sopenharmony_ci**返回值:** 555e41f4b71Sopenharmony_ci 556e41f4b71Sopenharmony_ci| 类型 | 说明 | 557e41f4b71Sopenharmony_ci| ------- | ------------------------------------- | 558e41f4b71Sopenharmony_ci| boolean | true 表示存在,false表示不存在。 | 559e41f4b71Sopenharmony_ci 560e41f4b71Sopenharmony_ci**示例:** 561e41f4b71Sopenharmony_ci 562e41f4b71Sopenharmony_ci```js 563e41f4b71Sopenharmony_cilet isExist = storage.hasSync('startup'); 564e41f4b71Sopenharmony_ciif (isExist) { 565e41f4b71Sopenharmony_ci console.info("The key of startup is contained."); 566e41f4b71Sopenharmony_ci} 567e41f4b71Sopenharmony_ci``` 568e41f4b71Sopenharmony_ci 569e41f4b71Sopenharmony_ci 570e41f4b71Sopenharmony_ci### has 571e41f4b71Sopenharmony_ci 572e41f4b71Sopenharmony_cihas(key: string, callback: AsyncCallback<boolean>): boolean 573e41f4b71Sopenharmony_ci 574e41f4b71Sopenharmony_ci检查存储对象是否包含名为给定key的存储。使用callback方式返回结果,此方法为异步方法。 575e41f4b71Sopenharmony_ci 576e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 577e41f4b71Sopenharmony_ci 578e41f4b71Sopenharmony_ci**参数:** 579e41f4b71Sopenharmony_ci 580e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 581e41f4b71Sopenharmony_ci| -------- | ---------------------------- | ---- | ------------------------------- | 582e41f4b71Sopenharmony_ci| key | string | 是 | 要获取的存储key名称,不能为空。 | 583e41f4b71Sopenharmony_ci| callback | AsyncCallback<boolean> | 是 | 回调函数。 | 584e41f4b71Sopenharmony_ci 585e41f4b71Sopenharmony_ci**返回值:** 586e41f4b71Sopenharmony_ci 587e41f4b71Sopenharmony_ci| 类型 | 说明 | 588e41f4b71Sopenharmony_ci| ------- | ------------------------------- | 589e41f4b71Sopenharmony_ci| boolean | true表示存在,false表示不存在。 | 590e41f4b71Sopenharmony_ci 591e41f4b71Sopenharmony_ci**示例:** 592e41f4b71Sopenharmony_ci 593e41f4b71Sopenharmony_ci```js 594e41f4b71Sopenharmony_cistorage.has('startup', function (err, isExist) { 595e41f4b71Sopenharmony_ci if (err) { 596e41f4b71Sopenharmony_ci console.info("Failed to check the key of startup with err: " + err); 597e41f4b71Sopenharmony_ci return; 598e41f4b71Sopenharmony_ci } 599e41f4b71Sopenharmony_ci if (isExist) { 600e41f4b71Sopenharmony_ci console.info("The key of startup is contained."); 601e41f4b71Sopenharmony_ci } 602e41f4b71Sopenharmony_ci}) 603e41f4b71Sopenharmony_ci``` 604e41f4b71Sopenharmony_ci 605e41f4b71Sopenharmony_ci 606e41f4b71Sopenharmony_ci### has 607e41f4b71Sopenharmony_ci 608e41f4b71Sopenharmony_cihas(key: string): Promise<boolean> 609e41f4b71Sopenharmony_ci 610e41f4b71Sopenharmony_ci检查存储对象是否包含名为给定key的存储。使用Promise方式返回结果,此方法为异步方法。 611e41f4b71Sopenharmony_ci 612e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 613e41f4b71Sopenharmony_ci 614e41f4b71Sopenharmony_ci**参数:** 615e41f4b71Sopenharmony_ci 616e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 617e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ------------------------------- | 618e41f4b71Sopenharmony_ci| key | string | 是 | 要获取的存储key名称,不能为空。 | 619e41f4b71Sopenharmony_ci 620e41f4b71Sopenharmony_ci**返回值:** 621e41f4b71Sopenharmony_ci 622e41f4b71Sopenharmony_ci| 类型 | 说明 | 623e41f4b71Sopenharmony_ci| ---------------------- | --------------------------- | 624e41f4b71Sopenharmony_ci| Promise<boolean> | Promise实例,用于异步处理。 | 625e41f4b71Sopenharmony_ci 626e41f4b71Sopenharmony_ci**示例:** 627e41f4b71Sopenharmony_ci 628e41f4b71Sopenharmony_ci```js 629e41f4b71Sopenharmony_cilet promisehas = storage.has('startup') 630e41f4b71Sopenharmony_cipromisehas.then((isExist) => { 631e41f4b71Sopenharmony_ci if (isExist) { 632e41f4b71Sopenharmony_ci console.info("The key of startup is contained."); 633e41f4b71Sopenharmony_ci } 634e41f4b71Sopenharmony_ci}).catch((err) => { 635e41f4b71Sopenharmony_ci console.info("Failed to check the key of startup with err: " + err); 636e41f4b71Sopenharmony_ci}) 637e41f4b71Sopenharmony_ci``` 638e41f4b71Sopenharmony_ci 639e41f4b71Sopenharmony_ci 640e41f4b71Sopenharmony_ci### deleteSync 641e41f4b71Sopenharmony_ci 642e41f4b71Sopenharmony_cideleteSync(key: string): void 643e41f4b71Sopenharmony_ci 644e41f4b71Sopenharmony_ci从存储对象中删除名为给定key的存储。 645e41f4b71Sopenharmony_ci 646e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 647e41f4b71Sopenharmony_ci 648e41f4b71Sopenharmony_ci**参数:** 649e41f4b71Sopenharmony_ci 650e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 651e41f4b71Sopenharmony_ci| ------ | ------ | ---- | --------------------------------- | 652e41f4b71Sopenharmony_ci| key | string | 是 | 要获取的存储key名称。它不能为空。 | 653e41f4b71Sopenharmony_ci 654e41f4b71Sopenharmony_ci**示例:** 655e41f4b71Sopenharmony_ci 656e41f4b71Sopenharmony_ci```js 657e41f4b71Sopenharmony_ci storage.deleteSync('startup'); 658e41f4b71Sopenharmony_ci``` 659e41f4b71Sopenharmony_ci 660e41f4b71Sopenharmony_ci 661e41f4b71Sopenharmony_ci### delete 662e41f4b71Sopenharmony_ci 663e41f4b71Sopenharmony_cidelete(key: string, callback: AsyncCallback<void>): void 664e41f4b71Sopenharmony_ci 665e41f4b71Sopenharmony_ci从存储对象中删除名为给定key的存储。使用callback方式返回结果,此方法为异步方法。 666e41f4b71Sopenharmony_ci 667e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 668e41f4b71Sopenharmony_ci 669e41f4b71Sopenharmony_ci**参数:** 670e41f4b71Sopenharmony_ci 671e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 672e41f4b71Sopenharmony_ci| -------- | ------------------------- | ---- | ------------------------------- | 673e41f4b71Sopenharmony_ci| key | string | 是 | 要获取的存储key名称,不能为空。 | 674e41f4b71Sopenharmony_ci| callback | AsyncCallback<void> | 是 | 回调函数。 | 675e41f4b71Sopenharmony_ci 676e41f4b71Sopenharmony_ci**示例:** 677e41f4b71Sopenharmony_ci 678e41f4b71Sopenharmony_ci```js 679e41f4b71Sopenharmony_cistorage.delete('startup', function (err) { 680e41f4b71Sopenharmony_ci if (err) { 681e41f4b71Sopenharmony_ci console.info("Failed to delete startup key failed err: " + err); 682e41f4b71Sopenharmony_ci return; 683e41f4b71Sopenharmony_ci } 684e41f4b71Sopenharmony_ci console.info("Succeeded in deleting startup key."); 685e41f4b71Sopenharmony_ci}) 686e41f4b71Sopenharmony_ci``` 687e41f4b71Sopenharmony_ci 688e41f4b71Sopenharmony_ci 689e41f4b71Sopenharmony_ci### delete 690e41f4b71Sopenharmony_ci 691e41f4b71Sopenharmony_cidelete(key: string): Promise<void> 692e41f4b71Sopenharmony_ci 693e41f4b71Sopenharmony_ci从存储对象删除名为给定key的存储。使用Promise方式返回结果,此方法为异步方法。 694e41f4b71Sopenharmony_ci 695e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 696e41f4b71Sopenharmony_ci 697e41f4b71Sopenharmony_ci**参数:** 698e41f4b71Sopenharmony_ci 699e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 700e41f4b71Sopenharmony_ci| ------ | ------ | ---- | --------------------- | 701e41f4b71Sopenharmony_ci| key | string | 是 | 要获取的存储key名称。 | 702e41f4b71Sopenharmony_ci 703e41f4b71Sopenharmony_ci**返回值:** 704e41f4b71Sopenharmony_ci 705e41f4b71Sopenharmony_ci| 类型 | 说明 | 706e41f4b71Sopenharmony_ci| ------------------- | --------------------------- | 707e41f4b71Sopenharmony_ci| Promise<void> | Promise实例,用于异步处理。 | 708e41f4b71Sopenharmony_ci 709e41f4b71Sopenharmony_ci**示例:** 710e41f4b71Sopenharmony_ci 711e41f4b71Sopenharmony_ci```js 712e41f4b71Sopenharmony_cilet promisedel = storage.delete('startup') 713e41f4b71Sopenharmony_cipromisedel.then(() => { 714e41f4b71Sopenharmony_ci console.info("Succeeded in deleting startup key."); 715e41f4b71Sopenharmony_ci}).catch((err) => { 716e41f4b71Sopenharmony_ci console.info("Failed to delete startup key failed err: " + err); 717e41f4b71Sopenharmony_ci}) 718e41f4b71Sopenharmony_ci``` 719e41f4b71Sopenharmony_ci 720e41f4b71Sopenharmony_ci 721e41f4b71Sopenharmony_ci### flushSync 722e41f4b71Sopenharmony_ci 723e41f4b71Sopenharmony_ciflushSync(): void 724e41f4b71Sopenharmony_ci 725e41f4b71Sopenharmony_ci将当前storage对象中的修改保存到当前的storage,并同步存储到文件中。 726e41f4b71Sopenharmony_ci 727e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 728e41f4b71Sopenharmony_ci 729e41f4b71Sopenharmony_ci**示例:** 730e41f4b71Sopenharmony_ci 731e41f4b71Sopenharmony_ci```js 732e41f4b71Sopenharmony_cistorage.flushSync(); 733e41f4b71Sopenharmony_ci``` 734e41f4b71Sopenharmony_ci 735e41f4b71Sopenharmony_ci 736e41f4b71Sopenharmony_ci### flush 737e41f4b71Sopenharmony_ci 738e41f4b71Sopenharmony_ciflush(callback: AsyncCallback<void>): void 739e41f4b71Sopenharmony_ci 740e41f4b71Sopenharmony_ci将当前storage对象中的修改保存到当前的storage,并异步存储到文件中。使用callback方式返回结果,此方法为异步方法。 741e41f4b71Sopenharmony_ci 742e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 743e41f4b71Sopenharmony_ci 744e41f4b71Sopenharmony_ci**参数:** 745e41f4b71Sopenharmony_ci 746e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 747e41f4b71Sopenharmony_ci| -------- | ------------------------- | ---- | ---------- | 748e41f4b71Sopenharmony_ci| callback | AsyncCallback<void> | 是 | 回调函数。 | 749e41f4b71Sopenharmony_ci 750e41f4b71Sopenharmony_ci**示例:** 751e41f4b71Sopenharmony_ci 752e41f4b71Sopenharmony_ci```js 753e41f4b71Sopenharmony_cistorage.flush(function (err) { 754e41f4b71Sopenharmony_ci if (err) { 755e41f4b71Sopenharmony_ci console.info("Failed to flush to file with err: " + err); 756e41f4b71Sopenharmony_ci return; 757e41f4b71Sopenharmony_ci } 758e41f4b71Sopenharmony_ci console.info("Succeeded in flushing to file."); 759e41f4b71Sopenharmony_ci}) 760e41f4b71Sopenharmony_ci``` 761e41f4b71Sopenharmony_ci 762e41f4b71Sopenharmony_ci 763e41f4b71Sopenharmony_ci### flush 764e41f4b71Sopenharmony_ci 765e41f4b71Sopenharmony_ciflush(): Promise<void> 766e41f4b71Sopenharmony_ci 767e41f4b71Sopenharmony_ci将当前storage对象中的修改保存到当前的storage,并异步存储到文件中。使用Promise方式返回结果,此方法为异步方法。 768e41f4b71Sopenharmony_ci 769e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 770e41f4b71Sopenharmony_ci 771e41f4b71Sopenharmony_ci**返回值:** 772e41f4b71Sopenharmony_ci 773e41f4b71Sopenharmony_ci| 类型 | 说明 | 774e41f4b71Sopenharmony_ci| ------------------- | --------------------------- | 775e41f4b71Sopenharmony_ci| Promise<void> | Promise实例,用于异步处理。 | 776e41f4b71Sopenharmony_ci 777e41f4b71Sopenharmony_ci**示例:** 778e41f4b71Sopenharmony_ci 779e41f4b71Sopenharmony_ci```js 780e41f4b71Sopenharmony_cilet promiseflush = storage.flush(); 781e41f4b71Sopenharmony_cipromiseflush.then(() => { 782e41f4b71Sopenharmony_ci console.info("Succeeded in flushing to file."); 783e41f4b71Sopenharmony_ci}).catch((err) => { 784e41f4b71Sopenharmony_ci console.info("Failed to flush to file with err: " + err); 785e41f4b71Sopenharmony_ci}) 786e41f4b71Sopenharmony_ci``` 787e41f4b71Sopenharmony_ci 788e41f4b71Sopenharmony_ci 789e41f4b71Sopenharmony_ci### clearSync 790e41f4b71Sopenharmony_ci 791e41f4b71Sopenharmony_ciclearSync(): void 792e41f4b71Sopenharmony_ci 793e41f4b71Sopenharmony_ci清除此存储对象中的所有存储。 794e41f4b71Sopenharmony_ci 795e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 796e41f4b71Sopenharmony_ci 797e41f4b71Sopenharmony_ci**示例:** 798e41f4b71Sopenharmony_ci 799e41f4b71Sopenharmony_ci```js 800e41f4b71Sopenharmony_cistorage.clearSync(); 801e41f4b71Sopenharmony_ci``` 802e41f4b71Sopenharmony_ci 803e41f4b71Sopenharmony_ci 804e41f4b71Sopenharmony_ci### clear 805e41f4b71Sopenharmony_ci 806e41f4b71Sopenharmony_ciclear(callback: AsyncCallback<void>): void 807e41f4b71Sopenharmony_ci 808e41f4b71Sopenharmony_ci清除此存储对象中的所有存储。使用callback方式返回结果,此方法为异步方法。 809e41f4b71Sopenharmony_ci 810e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 811e41f4b71Sopenharmony_ci 812e41f4b71Sopenharmony_ci**参数:** 813e41f4b71Sopenharmony_ci 814e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 815e41f4b71Sopenharmony_ci| -------- | ------------------------- | ---- | ---------- | 816e41f4b71Sopenharmony_ci| callback | AsyncCallback<void> | 是 | 回调函数。 | 817e41f4b71Sopenharmony_ci 818e41f4b71Sopenharmony_ci**示例:** 819e41f4b71Sopenharmony_ci 820e41f4b71Sopenharmony_ci```js 821e41f4b71Sopenharmony_cistorage.clear(function (err) { 822e41f4b71Sopenharmony_ci if (err) { 823e41f4b71Sopenharmony_ci console.info("Failed to clear the storage with err: " + err); 824e41f4b71Sopenharmony_ci return; 825e41f4b71Sopenharmony_ci } 826e41f4b71Sopenharmony_ci console.info("Succeeded in clearing the storage."); 827e41f4b71Sopenharmony_ci}) 828e41f4b71Sopenharmony_ci``` 829e41f4b71Sopenharmony_ci 830e41f4b71Sopenharmony_ci 831e41f4b71Sopenharmony_ci### clear 832e41f4b71Sopenharmony_ci 833e41f4b71Sopenharmony_ciclear(): Promise<void> 834e41f4b71Sopenharmony_ci 835e41f4b71Sopenharmony_ci清除此存储对象中的所有存储。使用Promise方式返回结果,此方法为异步方法。 836e41f4b71Sopenharmony_ci 837e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 838e41f4b71Sopenharmony_ci 839e41f4b71Sopenharmony_ci**返回值:** 840e41f4b71Sopenharmony_ci| 类型 | 说明 | 841e41f4b71Sopenharmony_ci| ------------------- | --------------------------- | 842e41f4b71Sopenharmony_ci| Promise<void> | Promise实例,用于异步处理。 | 843e41f4b71Sopenharmony_ci 844e41f4b71Sopenharmony_ci**示例:** 845e41f4b71Sopenharmony_ci 846e41f4b71Sopenharmony_ci```js 847e41f4b71Sopenharmony_cilet promiseclear = storage.clear(); 848e41f4b71Sopenharmony_cipromiseclear.then(() => { 849e41f4b71Sopenharmony_ci console.info("Succeeded in clearing the storage."); 850e41f4b71Sopenharmony_ci}).catch((err) => { 851e41f4b71Sopenharmony_ci console.info("Failed to clear the storage with err: " + err); 852e41f4b71Sopenharmony_ci}) 853e41f4b71Sopenharmony_ci``` 854e41f4b71Sopenharmony_ci 855e41f4b71Sopenharmony_ci 856e41f4b71Sopenharmony_ci### on('change') 857e41f4b71Sopenharmony_ci 858e41f4b71Sopenharmony_cion(type: 'change', callback: Callback<StorageObserver>): void 859e41f4b71Sopenharmony_ci 860e41f4b71Sopenharmony_ci订阅数据变更者类需要实现StorageObserver接口,订阅的key的值发生变更后,在执行flush/flushSync方法后,callback方法会被回调。 861e41f4b71Sopenharmony_ci 862e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 863e41f4b71Sopenharmony_ci 864e41f4b71Sopenharmony_ci**参数:** 865e41f4b71Sopenharmony_ci 866e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填| 说明 | 867e41f4b71Sopenharmony_ci| -------- | --------------------------------------------------- | ------ |---------------------------------------- | 868e41f4b71Sopenharmony_ci| type | string |是| 事件类型,固定值'change',表示数据变更。 | 869e41f4b71Sopenharmony_ci| callback | Callback<[StorageObserver](#storageobserver)> | 是|回调对象实例。 | 870e41f4b71Sopenharmony_ci 871e41f4b71Sopenharmony_ci**示例:** 872e41f4b71Sopenharmony_ci 873e41f4b71Sopenharmony_ci```js 874e41f4b71Sopenharmony_cilet observer = function (key) { 875e41f4b71Sopenharmony_ci console.info("The key of " + key + " changed."); 876e41f4b71Sopenharmony_ci} 877e41f4b71Sopenharmony_cistorage.on('change', observer); 878e41f4b71Sopenharmony_cistorage.putSync('startup', 'auto'); 879e41f4b71Sopenharmony_cistorage.flushSync(); // observer will be called. 880e41f4b71Sopenharmony_ci``` 881e41f4b71Sopenharmony_ci 882e41f4b71Sopenharmony_ci 883e41f4b71Sopenharmony_ci### off('change') 884e41f4b71Sopenharmony_ci 885e41f4b71Sopenharmony_cioff(type: 'change', callback: Callback<StorageObserver>): void 886e41f4b71Sopenharmony_ci 887e41f4b71Sopenharmony_ci当不再进行订阅数据变更时,使用此接口取消订阅。 888e41f4b71Sopenharmony_ci 889e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 890e41f4b71Sopenharmony_ci 891e41f4b71Sopenharmony_ci**参数:** 892e41f4b71Sopenharmony_ci 893e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 894e41f4b71Sopenharmony_ci| -------- | --------------------------------------------------- | ------ |---------------------------------------- | 895e41f4b71Sopenharmony_ci| type | string |是| 事件类型,固定值'change',表示数据变更。 | 896e41f4b71Sopenharmony_ci| callback | Callback<[StorageObserver](#storageobserver)> | 是|需要取消的回调对象实例。 | 897e41f4b71Sopenharmony_ci 898e41f4b71Sopenharmony_ci**示例:** 899e41f4b71Sopenharmony_ci 900e41f4b71Sopenharmony_ci```js 901e41f4b71Sopenharmony_cilet observer = function (key) { 902e41f4b71Sopenharmony_ci console.info("The key of " + key + " changed."); 903e41f4b71Sopenharmony_ci} 904e41f4b71Sopenharmony_cistorage.off('change', observer); 905e41f4b71Sopenharmony_ci``` 906e41f4b71Sopenharmony_ci 907e41f4b71Sopenharmony_ci 908e41f4b71Sopenharmony_ci## StorageObserver 909e41f4b71Sopenharmony_ci 910e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 911e41f4b71Sopenharmony_ci 912e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 913e41f4b71Sopenharmony_ci| ---- | -------- | ---- | ---------------- | 914e41f4b71Sopenharmony_ci| key | string | 是 | 变更的数据内容。 | 915e41f4b71Sopenharmony_ci 916e41f4b71Sopenharmony_ci## ValueType 917e41f4b71Sopenharmony_ci 918e41f4b71Sopenharmony_citype ValueType = number | string | boolean 919e41f4b71Sopenharmony_ci 920e41f4b71Sopenharmony_ci用于表示允许的数据字段类型。 921e41f4b71Sopenharmony_ci 922e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core 923e41f4b71Sopenharmony_ci 924e41f4b71Sopenharmony_ci| 类型 | 说明 | 925e41f4b71Sopenharmony_ci| ------- | -------------------- | 926e41f4b71Sopenharmony_ci| number | 表示值类型为数字。 | 927e41f4b71Sopenharmony_ci| string | 表示值类型为字符。 | 928e41f4b71Sopenharmony_ci| boolean | 表示值类型为布尔值。 | 929