较轻量级的数据存储(2)

导入模块

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)

 

 

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值