# 轻量级存储 轻量级存储为应用提供key-value键值型的文件数据处理能力,支持应用对数据进行轻量级存储及查询。数据存储形式为键值对,键的类型为字符串型,值的存储数据类型包括数字型、字符型、布尔型。 >![](../../public_sys-resources/icon-note.gif) **说明:** >从 API Version 6 开始支持。 ## 导入模块 ``` import dataStorage from '@ohos.data.storage'; ``` ## 权限 无 ## 属性

名称

参数类型

可读

可写

说明

MAX_KEY_LENGTH

string

key的最大长度限制,大小为80字节。

MAX_VALUE_LENGTH

string

string类型value的最大长度限制,大小为8192字节。

## dataStorage.getStorageSync getStorageSync\(path: string\): Storage 读取指定文件,将数据加载到Storage实例,用于数据操作,此方法为同步方法。 - 参数:

参数名

类型

必填

说明

path

string

应用程序内部数据存储路径。

- 返回值:

类型

说明

Storage

获取到要操作的Storage实例,用于进行数据存储操作。

- 示例: ``` const PATH = '{storage_path_name_in_working_folder}'; let store = dataStorage.getStorageSync(PATH); ``` ## dataStorage.getStorage getStorage\(path: string, callback: AsyncCallback\): void 读取指定文件,将数据加载到Storage实例,用于数据操作,使用callback形式返回结果。 - 参数:

参数名

类型

必填

说明

path

string

应用程序内部数据存储路径。

callback

AsyncCallback<Storage>

回调函数。

- 示例: ``` dataStorage.getStorage(PATH, function(err, data) { store = data; }); ``` ## dataStorage.getStorage getStorage\(path: string\): Promise 读取指定文件,将数据加载到Storage实例,用于数据操作,使用Promise方式作为异步方法。 - 参数:

参数名

类型

必填

说明

path

string

应用程序内部数据存储路径。

- 返回值:

类型

说明

Promise<Storage>

Promise实例,用于异步获取结果。

- 示例: ``` const promise = dataStorage.getStorage(PATH); promise.then((data) => { data.clearSync(); }).catch((err) => { }); ``` ## dataStorage.deleteStorageSync deleteStorageSync\(path: string\): void 从内存中移除指定文件对应的Storage单实例,并删除指定文件及其备份文件、损坏文件。删除指定文件时,应用不允许再使用该实例进行数据操作,否则会出现数据一致性问题,此方法为同步方法。 - 参数:

参数名

类型

必填

说明

path

string

应用程序内部数据存储路径。

- 示例: ``` dataStorage.deleteStorageSync(PATH); ``` ## dataStorage.deleteStorage deleteStorage\(path: string, callback: AsyncCallback\) 从内存中移除指定文件对应的Storage单实例,并删除指定文件及其备份文件、损坏文件。删除指定文件时,应用不允许再使用该实例进行数据操作,否则会出现数据一致性问题,使用callback方式作为异步方法。 - 参数:

参数名

类型

必填

说明

path

string

应用程序内部数据存储路径。

callback

AsyncCallback<Storage>

回调函数。

- 示例: ``` dataStorage.deleteStorage(PATH, function(err, data) { }); ``` ## dataStorage.deleteStorage deleteStorage\(path: string\): Promise 从内存中移除指定文件对应的Storage单实例,并删除指定文件及其备份文件、损坏文件。删除指定文件时,应用不允许再使用该实例进行数据操作,否则会出现数据一致性问题,使用promise方式作为异步方法。 - 参数:

参数名

类型

必填

说明

path

string

应用程序内部数据存储路径。

- 返回值:

类型

说明

Promise<void>

Promise实例,用于异步获取结果。

- 示例: ``` const promise = dataStorage.deleteStorage(PATH); promise.then((data) => { }).catch((err) => { }); ``` ## dataStorage.removeStorageFromCacheSync removeStorageFromCacheSync\(path: string\): void 从内存中移除指定文件对应的Storage单实例。移除Storage单实例时,应用不允许再使用该实例进行数据操作,否则会出现数据一致性问题。 此方法为同步方法。 - 参数:

参数名

类型

必填

说明

path

string

应用程序内部数据存储路径。

- 示例: ``` dataStorage.removeStorageFromCacheSync(PATH); ``` ## dataStorage.removeStorageFromCache removeStorageFromCache\(path: string, callback: AsyncCallback\): void 从内存中移除指定文件对应的Storage单实例。移除Storage单实例时,应用不允许再使用该实例进行数据操作,否则会出现数据一致性问题。 此方法为异步方法。 - 参数:

参数名

类型

必填

说明

path

string

应用程序内部数据存储路径。

callback

AsyncCallback<Storage>

回调函数。

- 示例: ``` dataStorage.removeStorageFromCache(PATH, function(err, data) { }); ``` ## dataStorage.removeStorageFromCache removeStorageFromCache\(path: string\): Promise 从内存中移除指定文件对应的Storage单实例。移除Storage单实例时,应用不允许再使用该实例进行数据操作,否则会出现数据一致性问题。 此方法为异步方法。 - 参数:

参数名

类型

必填

说明

path

string

应用程序内部数据存储路径。

- 返回值:

类型

说明

Promise<void>

Promise实例,用于异步获取结果。

- 示例: ``` const promise = dataStorage.removeStorageFromCache(PATH); promise.then((data) => { }).catch((err) => { }); ``` ## Storage 提供获取和修改存储数据的接口。 ### getSync getSync\(key: string, defValue: ValueType\): ValueType 获取键对应的值,如果值为null或者非默认值类型,返回默认数据。 此方法为同步方法。 - 参数:

参数名

类型

必填

说明

key

string

要获取的存储key名称。它不能为空。

defValue

ValueType

给定key的存储不存在,则要返回的默认值。支持number、string、boolean。

- 返回值:

类型

说明

ValueType

键对应的值,如果值为null或者非默认值类型,返回默认数据。

- 示例: ``` let ret = store.getSync(key, 'defValue'); ``` ### get get\(key: string, defValue: ValueType, callback: AsyncCallback\): void 获取键对应的值,如果值为null或者非默认值类型,返回默认数据。 此方法为异步方法。 - 参数:

参数名

类型

必填

说明

key

string

要获取的存储key名称。它不能为空。

defValue

ValueType

默认返回值。支持number、string、boolean。

callback

AsyncCallback<ValueType>

回调函数。

- 示例: ``` store.get(key, 'test', function(err, data) { console.info(data); }); ``` ### get get\(key: string, defValue: ValueType\): Promise 获取键对应的值,如果值为null或者非默认值类型,返默认数据。 此方法为异步方法。 - **参数:**

参数名

类型

必填

说明

key

string

要获取的存储key名称。它不能为空。

defValue

ValueType

默认返回值。支持number、string、boolean。

- 返回值:

类型

说明

Promise<ValueType>

Promise实例,用于异步获取结果。

- 示例: ``` const promise = store.get(key, 'test'); promise.then((data) => { console.info(data); }).catch((err) => { }); ``` ### putSync putSync\(key: string, value: ValueType\): void 首先获取指定文件对应的Storage实例,然后借助Storage API将数据写入Storage实例,通过flush或者flushSync将Storage实例持久化。 此方法为同步方法。 - 参数:

参数名

类型

必填

说明

key

string

要修改的存储的key。它不能为空。

value

ValueType

存储的新值。支持number、string、boolean。

- 示例: ``` let data = store.putSync(key, 'defValue'); ``` ### put put\(key: string, value: ValueType, callback: AsyncCallback\): void 首先获取指定文件对应的Storage实例,然后借助Storage API将数据写入Storage实例,通过flush或者flushSync将Storage实例持久化。 此方法为异步方法。 - 参数:

参数名

类型

必填

说明

key

string

要修改的存储的key。它不能为空。

value

ValueType

存储的新值。支持number、string、boolean。

callback

AsyncCallback<void>

回调函数。

- 示例: ``` store.put(key, 'test', function(err, data) { }); ``` ### put put\(key: string, value: ValueType\): Promise 首先获取指定文件对应的Storage实例,然后借助Storage API将数据写入Storage实例,通过flush或者flushSync将Storage实例持久化。 此方法为异步方法。 - 参数:

参数名

类型

必填

说明

key

string

要修改的存储的key。它不能为空。

value

ValueType

存储的新值。支持number、string、boolean。

- 返回值:

类型

说明

Promise<void>

Promise实例,用于异步处理。

- 示例: ``` const promise = store.put(key, 'test'); promise.then((data) => { }).catch((err) => { }); ``` ### hasSync hasSync\(key: string\): boolean 检查存储对象是否包含名为给定key的存储。 此方法为同步方法。 - 参数:

参数名

类型

必填

说明

key

string

要获取的存储key名称。它不能为空。

- 返回值:

类型

说明

boolean

true 表示存在,false表示不存在。

- 示例: ``` let ret = store.hasSync(key); ``` ### has has\(key: string, callback: AsyncCallback\): boolean 检查存储对象是否包含名为给定key的存储。 此方法为异步方法。 - 参数:

参数名

类型

必填

说明

key

string

要获取的存储key名称,不能为空。

callback

AsyncCallback<boolean>

回调函数。

- 返回值:

类型

说明

boolean

true表示存在,false表示不存在。

- 示例: ``` store.has(key, function(err, data) { console.info(data); }); ``` ### has has\(key: string\): Promise 检查存储对象是否包含名为给定key的存储。 此方法为异步方法。 - 参数:

参数名

类型

必填

说明

key

string

要获取的存储key名称。它不能为空。

- 返回值:

类型

说明

Promise<boolean>

Promise实例,用于异步处理。

- 示例: ``` const promise = store.has(key); promise.then((data) => { console.info(data); }).catch((err) => { }); ``` ### deleteSync deleteSync\(key: string\): void 从存储对象中删除名为给定key的存储。 此方法为同步方法。 - 参数:

参数名

类型

必填

说明

key

string

要获取的存储key名称。它不能为空。

- 示例: ``` store.deleteSync(key); ``` ### delete delete\(key: string, callback: AsyncCallback\): void 从存储对象中删除名为给定key的存储。 此方法为异步方法。 - 参数:

参数名

类型

必填

说明

key

string

要获取的存储key名称,不能为空。

callback

AsyncCallback<void>

回调函数。

- 示例: ``` store.delete(key, function(err, data) { }); ``` ### delete delete\(key: string\): Promise 从存储对象删除名为给定key的存储。 此方法为异步方法。 - 参数:

参数名

类型

必填

说明

key

string

要获取的存储key名称。

- 返回值:

类型

说明

Promise<void>

Promise实例,用于异步处理。

- 示例: ``` const promise = store.delete(key); promise.then((data) => { }).catch((err) => { }); ``` ### flushSync flushSync\(\): void 将当前storage对象中的修改保存到当前的storage,并同步存储到文件中。 此方法为同步方法。 - 示例: ``` store.flushSync(); ``` ### flush flush\(callback: AsyncCallback\): void 将当前storage对象中的修改保存到当前的storage,并异步存储到文件中。 此方法为异步方法。 - 参数:

参数名

类型

必填

说明

callback

AsyncCallback<void>

回调函数。

- 示例: ``` store.flush(function(err, data) { }); ``` ### flush flush\(\): Promise 将当前storage对象中的修改保存到当前的storage,并异步存储到文件中。 此方法为异步方法。 - 返回值:

类型

说明

Promise<void>

Promise实例,用于异步处理。

- 示例: ``` const promise = store.flush(); promise.then((data) => { }).catch((err) => { }); ``` ### clearSync clearSync\(\): void 清除此存储对象中的所有存储。 此方法为同步方法。 - 示例: ``` store.clearSync(); ``` ### clear clear\(callback: AsyncCallback\): void 清除此存储对象中的所有存储。 此方法为异步方法。 - 参数:

参数名

类型

必填

说明

callback

AsyncCallback<void>

回调函数。

- 示例: ``` store.clear(function(err, data) { }); ``` ### clear clear\(\): Promise 清除此存储对象中的所有存储。 此方法为异步方法。 - 返回值:

类型

说明

Promise<void>

Promise实例,用于异步处理。

- 示例: ``` const promise = store.clear(); promise.then((data) => { }).catch((err) => { }); ``` ### on('change') on\(type: 'change', callback: Callback\): void 监听者类需要实现StorageObserver接口,当数据发生改变时,监听者的 StorageObserver\#onChange会被回调。 - 参数:

参数名

类型

说明

type

string

事件类型,固定值'change',表示数据变更。

callback

Callback<StorageObserver>

需要监听的回调对象实例。

- 示例: ``` var observer = function (data) { console.info(data); }; store.on('change', observer); ``` ### off('change') off\(type: 'change', callback: Callback\): void 监听者类需要实现StorageObserver接口,当不再进行数据监听时,使用此接口取消监听。 - 参数:

参数名

类型

说明

type

string

事件类型,固定值'change',表示数据变更。

callback

Callback<StorageObserver>

需要取消的回调对象实例。

- 示例: ``` var observer = function (data) { console.info(data); }; store.off('change', observer); ``` ## StorageObserver

名称

参数类型

必填

说明

key

string

变更的数据内容。