永久存储

本文介绍了Python中文件的基本操作方法,包括文件的打开、读取、写入及关闭等,并详细讲解了pickle模块如何用于序列化复杂数据类型,如列表和字典,以便于存储和读取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

打开文件open(“文件名”,”打开方式r,w,x,a,b,t,+,U”),

文件对象的方法:成功打开一个文件之后,它会返回一个文件对象,可以利用文件对象的一些方法对文件进行读取和修改操作

文件的关闭close()

文件的读取和定位:f.read()///f.tell()///f.seek()文件指针seek0,0

文件的写入:确保打开的模式有w或者a

文件系统os 模块

pickle模块 将列表、字典这类复杂的数据类型存储为文件

Import pickle

Pickle_file = open(“文件位置读写方式”)

文件名,文件内容,存储位置,使用dumpy(文件名,pickle_file)方法来保存数据

 

### 鸿蒙系统的永久存储机制 鸿蒙系统提供了多种方式来实现数据的永久存储,确保即使设备重启或应用程序关闭后,重要数据依然能够被保存并读取。 #### 使用用户首选项 (Preference) 对于少量结构化数据的持久化需求,可以通过用户首选项来进行处理。这种方式类似于其他平台上的`SharedPreferences`或是`NSUserDefaults`[^2]。通过调用相应的API接口,开发者可以在应用内部轻松地写入和读取出键值对形式的小型数据集。这非常适合用来记录用户的偏好设置或者其他轻量级的信息。 ```javascript // 设置偏好选项 import preferences from '@ohos/preferences'; let pref = preferences.create('my_prefs'); await pref.putBoolean('isDarkMode', true); await pref.putInt('fontSize', 18); // 获取偏好选项 const isDarkModeEnabled = await pref.getBoolean('isDarkMode', false); // 默认值为false console.log(`Is dark mode enabled? ${isDarkModeEnabled}`); ``` #### 利用LocalStorage API 针对更复杂的场景或者是较大规模的数据集合,则可以考虑采用LocalStorage的方式。这种方法允许开发者创建文件并将它们安全地保存至本地磁盘上,从而达到长期保持的目的。它不仅适用于简单的字符串类型数据,还可以处理JSON对象等形式的内容[^3]。 ```typescript // 创建LocalStorage实例 import localstorage from '@ohos/localStorage'; const storage = new localstorage.LocalStorage(); // 写入数据到LocalStorage async function saveData(key, value) { try { await storage.setItem(key, JSON.stringify(value)); console.log(`${key} saved successfully.`); } catch (err) { console.error(err.message); } } // 从LocalStorage中读取数据 async function loadData(key) { let result; try { const dataStr = await storage.getItem(key); if(dataStr !== null){ result = JSON.parse(dataStr); } } catch (err) { console.error(err.message); } return result; } ``` #### 应用资产库(Asset Store Kit) 当涉及到更为重要的业务逻辑以及希望这些信息能够在卸载后再安装时依旧存在的话,那么就应该选择使用Application Asset Store Kit服务。此工具包专为满足此类特殊要求而设计,在保存过程中设置了特定标志位(即`IS_PERSISTENT=true`),使得所储存下来的资料不会因为常规清理动作如清除缓存等受到影响;同时为了保护隐私权,还需要声明额外的安全许可权限——`ohos.permission.STORE_PERSISTENT_DATA`[^4]。 ```java // 初始化AssetStoreKit客户端 import ohos.data.assetstore.AssetStoreClient; final AssetStoreClient client = new AssetStoreClient(context); // 插入新资产条目 public void insertPersistentEntry(String key, String content) throws Exception{ ContentValues values = new ContentValues(); values.put("content", content); Uri uri = client.insert(Uri.withAppendedPath( AssetStoreContract.PersistedEntries.CONTENT_URI, "persistent"), values); Log.d(TAG,"Inserted entry at URI:" + uri.toString()); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值