导入模块
import dataStorage from '@ohos.data.storage'
读取文件getStorage
读取指定文件,将数据加载到Storage实例,用于数据操作,此方法为同步方法
import dataStorage from '@ohos.data.storage'//导入模块
import featureAbility from '@ohos.ability.featureAbility'
var context = featureAbility.getContext()//当数据库创建成功后,数据库文件将存储在由上下文指定的目录里
var path = await context.getFilesDir()//详细路径信息
let storage = dataStorage.getStorageSync(path + '/mystore')//读取指定文件,将数据加载到Storage实例,用于数据操作,此方法为同步方法。
storage.putSync('startup', 'auto')//添加
storage.flushSync()//持续永久化
使用回调函数
import dataStorage from '@ohos.data.storage'//导入模块
import featureAbility from '@ohos.ability.featureAbility'
var context = featureAbility.getContext()//当数据库创建成功后,数据库文件将存储在由上下文指定的目录里
var path = await context.getFilesDir()//详细路径信息
dataStorage.getStorage(path + '/mystore', function (err, storage) {
if (err) {
console.info("Get the storage failed, path: " + path + '/mystore')
return;
}
storage.putSync('startup', 'auto')
storage.flushSync()
})
异步操作
import dataStorage from '@ohos.data.storage'
import featureAbility from '@ohos.ability.featureAbility'
var context = featureAbility.getContext()
var path = await context.getFilesDir()
let promise = dataStorage.getStorage(path + '/mystore')
promise.then((storage) => {
storage.putSync('startup', 'auto')
storage.flushSync()
}).catch((err) => {
console.info("Get the storage failed, path: " + path + '/mystore')
})
删除delete
同步 dataStorage.deleteStorageSync(path + '/mystore')
异步
dataStorage.deleteStorage(path + '/mystore', function (err) {
if (err) {
console.info("Deleted failed with err: " + err)
return
}
console.info("Deleted successfully.")
})
移除 remove
同步:dataStorage.removeStorageFromCacheSync(path + '/mystore')
异步:
dataStorage.removeStorageFromCache(path + '/mystore', function (err) {
if (err) {
console.info("Removed storage from cache failed with err: " + err)
return
}
console.info("Removed storage from cache successfully.")
})
获取get
返回值为valuetype
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
key | string | 是 | 要获取的存储key名称。它不能为空。 |
defValue | ValueType | 是 | 给定key的存储不存在,则要返回的默认值。支持number、string、boolean。 |
同步
let value = storage.getSync('startup', 'default')
console.info("The value of startup is " + value)
异步
storage.get('startup', 'default', function(err, value) {
if (err) {
console.info("Get the value of startup failed with err: " + err)
return
}
console.info("The value of startup is " + value)
})
上传put
同步 storage.putSync('startup', 'auto')
异步
storage.put('startup', 'auto', function (err) {
if (err) {
console.info("Put the value of startup failed with err: " + err)
return
}
console.info("Put the value of startup successfully.")
})
判断Has
检查存储对象是否包含名为给定key的存储。
同步
let isExist = storage.hasSync('startup')
if (isExist) {
console.info("The key of startup is contained.")
}
异步
storage.has('startup', function (err, isExist) {
if (err) {
console.info("Check the key of startup failed with err: " + err)
return
}
if (isExist) {
console.info("The key of startup is contained.")
}
})
存储到文件flush
同步
storage.flush(function (err) {
if (err) {
console.info("Flush to file failed with err: " + err)
return
}
console.info("Flushed to file successfully.")
})
异步promise
let promise = storage.flush()
promise.then(() => {
console.info("Flushed to file successfully.")
}).catch((err) => {
console.info("Flush to file failed with err: " + err)
})
清除clear
清除此存储对象中的所有存储。
同步:storage.clearSync()
异步:
let promise = storage.clear()
promise.then(() => {
console.info("Cleared to file successfully.")
}).catch((err) => {
console.info("Clear to file failed with err: " + err)
})
捕获变更on
订阅数据变更者类需要实现StorageObserver接口,订阅的key的值发生变更后,在执行flush/flushSync方法后,callback方法会被回调。
var observer = function (key) {
console.info("The key of " + key + " changed.")
}
storage.on('change', observer)
storage.putSync('startup', 'auto')
storage.flushSync() // observer will be called.
捕获不在变更off
var observer = function (key) {
console.info("The key of " + key + " changed.")
}
storage.off('change', observer)