java.util.prefs.Preferences简单例子

news/2024/12/21 16:01:58/文章来源:https://www.cnblogs.com/xkxf/p/18620849

Java 的 Preferences API 提供了一种简单的方式来存储和检索用户或系统级别的首选项(键值对数据)。这些数据可以持久化存储,例如保存用户设置。

下面是一个 最简单的例子

示例:保存和读取用户首选项

import java.util.prefs.Preferences;public class PreferencesExample {public static void main(String[] args) {// 获取用户首选项节点Preferences prefs = Preferences.userRoot().node("com/example");// 保存首选项prefs.put("username", "Alice"); // 存储一个字符串prefs.putInt("highscore", 200); // 存储一个整数// 读取首选项String username = prefs.get("username", "DefaultUser"); // 默认值为 "DefaultUser"int highscore = prefs.getInt("highscore", 0);           // 默认值为 0// 打印读取的值System.out.println("用户名: " + username);System.out.println("最高分: " + highscore);// 删除首选项prefs.remove("username");// 再次读取,检查默认值是否生效username = prefs.get("username", "DefaultUser");System.out.println("用户名(已删除后): " + username);}
}

代码运行说明

  1. 存储数据

    • prefs.put(key, value):存储一个键值对。
    • prefs.putInt(key, value):存储一个整数。
  2. 读取数据

    • prefs.get(key, defaultValue):读取数据,如果找不到键,就返回默认值。
    • prefs.getInt(key, defaultValue):读取整数数据。
  3. 删除数据

    • prefs.remove(key):删除指定键的值。
  4. 节点(Node)

    • Preferences.userRoot():获取用户级别的首选项节点。
    • .node("com/example"):指定一个自定义节点路径,避免键冲突。

运行结果示例

如果运行上述代码,输出可能如下:

用户名: Alice
最高分: 200
用户名(已删除后): DefaultUser

适用场景

  1. 保存用户设置,例如用户名、窗口大小、主题颜色等。
  2. 存储小型配置信息,不需要额外依赖配置文件。

注意事项

  • 数据存储位置:不同操作系统会有不同的存储位置,通常是操作系统的注册表或文件系统。
  • 限制:Preferences API 适合轻量级数据存储。如果需要复杂数据或大文件,推荐使用数据库或配置文件(如 JSON/XML)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/856388.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis安装配置

安装gcc环境sudo yum install -y gcc-c++查看gcc环境gcc -v

我们的电视Our tv 3.6.0安卓+TV 一款全新电视直播软件-内置稳定直播源

应用简介 我们的电视(ourtv)是一款完全无广告的电视直播软件,清晰度可选择高清,超清,蓝光等播放。安装即可使用,再也不用费劲去找各种不稳定的直播源了。 “我们的电视”播放线路(直播源)是来自央视频,因此画质和稳定性还可以。不过随之而来的问题是跟央视频 App 不兼…

[HTML/Web] HTML5之`Video`元素

概述:video 元素 核心属性:playbackRate/播放速率在HTML5中,<video> 元素提供了一个 playbackRate 属性,可以用来设置视频的播放速度。这个属性允许你设置视频的倍速播放,比如正常速度、慢速或快速。以下是如何设置 <video> 元素的倍速播放:html<video id…

鸿蒙HarmonyOS应用开发 | HarmonyOS Next-从应用开发到上架全流程解析

HarmonyOS Next-从应用开发到上架全流程解析 随着智能设备的不断普及,操作系统的竞争变得愈加激烈。在这个背景下,华为推出的HarmonyOS(鸿蒙操作系统)逐渐崭露头角,成为一个引人注目的新兴平台。本文将深入探讨HarmonyOS Next的应用开发流程,并特别关注鸿蒙应用上架的全过…

2024-2025-1 20241307《计算机基础与程序设计》第十三周学习总结

作业信息这个作业属于哪个课程 (2024-2025-1-计算机基础与程序设计)这个作业要求在哪里 ([2024-2025-1计算机基础与程序设计第十三周作业]这个作业的目标作业正文 (2024-2025-1 学号20241307《计算机基础与程序设计》第十三周学习总结)教材学习内容总结 C语言程序设计第十二…

移动端笔记应用,markdown应用选用

要求不能有广告。作为使用频率较高的软件,有广告就是恶心人。 支持markdown,包括且不限于代码块、标题、图片等格式。 支持同步,至少拥有WebDav云同步,或者本地导入导出。 全局搜索功能。以上功能必须免费,至少我不明白导入导出有什么好付费的。云同步这种付费理所当然。背…

一个.NET开源、易于使用的屏幕录制工具

前言 一款高效、易用的屏幕录制工具能够极大地提升我们的工作效率和用户体验,今天大姚给大家分享一个.NET开源、免费、易于使用的屏幕录制工具:Captura。 工具介绍 Captura是一款基于.NET开源、免费、易于使用的屏幕录制、截图工具,允许用户录制屏幕活动、捕获屏幕截图、录制…

CDN信息收集

引子:这篇是对架构信息收集中CDN部分的补充,由于Web应用先得注册域名才能使用CDN服务,而我国境内的域名注册需先要备案。又因为笔者目前并没有这方面的需求,因此本文仅简单介绍该如何识别CDN,以及一些常见的CDN绕过方式。免责声明:本文章仅用于交流学习,因文章内容而产生…

20结构伪类-borderz制图-网络字体-字体图标

一、结构伪类-:nth-child 在一些特殊的场景使用结构伪类还是非常方便的。 是真正有用的东西。 之前使用最主要的东西是nth-child() :nth-child(1)这个是选择父元素中的第一个子元素如果是下图这样就不能选中了。这里需要使用另外一个东西,叫做:nth-of-type()用这个东西可以选择…

【关节电机专栏】小米 CyberGear 电机和大然 PDA-04 CAN接口的区别

小米电机CAN接口:大然PDA-04 CAN接口:可见两家的CAN接口 CANL 和 CANH 是相反的。

BBU-Python期末考试复习题目总结

临近期末,抽个时间把BBU - python期末考试会考的题型(原题?)哈哈总结一下,放到我的个人bolg上供大家参考,祝考试高分通过————临近期末,抽个时间把BBU - python期末考试会考的题型(原题?)哈哈总结一下,python考试是比较简单的,题型分为选择题,判断题,填空题,程序…

老生常谈——分布式限流:部分Sentinal源码解读

基础知识HTTP CODE = 429 “请求过多”A. 限流的类型服务端客户端限流的标的IP用户...基本要求准确限制过量的请求。低延时。限流器不能拖慢HTTP响应时间。尽量占用较少的内存。这是一个分布式限流器,可以在多个服务器或者进程之间共享。需要处理异常。当用户的请求被拦截时,…