# 轻量级存储
轻量级存储为应用提供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
|
否
|
变更的数据内容。
|