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