Java的properties配置文件

JAVA - 【Properties】获取properties配置文件中的值 .properties文件格式 version=v1.0 developer=kuoa welcome=Welcome to use KFTP! defaultDir=D\:\\KFTP 获取.properties文件中的值 1> 方式一 ☞ 该文件放在项目src文件夹中,该方法中直接传入文件名即可( 不包含后缀 ) ResourceBundle rb = ResourceBundle.getBundle("info"); rb.getString(key); 2> 方式二 阅读详情

Java的properties配置文件

Properties类与Properties配置文件

Properties类继承自Hashtable类并且实现了Map接口,也是使用一种键值对的形式来保存属性集。不过Properties有特殊的地方,就是它的键和值都是字符串类型。

jdk文档的描述: Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。

一个属性列表可包含另一个属性列表作为它的“默认值”;如果未能在原有的属性列表中搜索到属性键,则搜索第二个属性列表。

因为 Properties 继承于 Hashtable,所以可对 Properties 对象应用 put 和 putAll 方法。但不建议使用这两个方法,因为它们允许调用者插入其键或值不是 String 的项。相反,应该使用 setProperty 方法。如果在“不安全”的 Properties 对象(即包含非 String 的键或值)上调用 store 或 save 方法,则该调用将失败。类似地,如果在“不安全”的 Properties 对象(即包含非 String 的键)上调用 propertyNames 或 list 方法,则该调用将失败。

常用方法:
setProperty
public Object setProperty(String key,
                          String value)调用 Hashtable 的方法 put。使用 getProperty 方法提供并行性。强制要求为属性的键和值使用字符串。返回值是 Hashtable 调用 put 的结果。 

参数:
key - 要置于属性列表中的键。
value - 对应于 key 的值。 
返回:
属性列表中指定键的旧值,如果没有值,则为 null。
load
public void load(InputStream inStream)
          throws IOException从输入流中读取属性列表(键和元素对)。输入流按 load(Reader) 中所指定的、简单的面向行的格式,并假定使用 ISO 8859-1 字符编码;即每个字节都是 Latin1 字符。对于非 Latin1 的字符和某些特殊字符,可以使用 Unicode 转义以键和元素的形式来表示它们。 
此方法返回后,指定的流仍保持打开状态。 


参数:
inStream - 输入流。 
抛出: 
IOException - 如果读取输入流时发生错误。 
IllegalArgumentException - 如果输入流包含错误的 Unicode 转义序列。
store
public void store(OutputStream out,
                  String comments)
           throws IOException以适合使用 load(InputStream) 方法加载到 Properties 表中的格式,将此 Properties 表中的属性列表(键和元素对)写入输出流。 
此方法未 编写此 Properties 表默认表的属性(如果有)。 

此方法以 store(Writer) 中指定的相同格式输出注释、属性键和值,注意以下几点不同: 

使用 ISO 8859-1 字符编码写入该流。 
注释中不是 Latin-1 的字符针对其适当的十六进制值 xxxx 以 \uxxxx 的形式写入。 
属性键或值中小于 \u0020 的字符和大于 \u007E 的字符针对适当的十六进制值 xxxx 以 \uxxxx 的形式写入。 
写入各个项后,刷新输出流。此方法返回后,输出流仍保持打开状态。 



参数:
out - 输出流。
comments - 属性列表的描述。 
抛出: 
IOException - 如果将此属性列表写入指定的输出流时,抛出 IOException。 
ClassCastException - 如果此 Properties 对象包含任意非 String 的键或值。 
NullPointerException - 如果 out 为 null。
getProperty
public String getProperty(String key)用指定的键在此属性列表中搜索属性。如果在此属性列表中未找到该键,则接着递归检查默认属性列表及其默认值。如果未找到属性,则此方法返回 null。 

参数:
key - 属性键。 
返回:
属性列表中具有指定键值的值。
stringPropertyNames
public Set<String> stringPropertyNames()返回此属性列表中的键集,其中该键及其对应值是字符串,如果在主属性列表中未找到同名的键,则还包括默认属性列表中不同的键。其键或值不是 String 类型的属性被忽略。 
返回的 set 不受 Properties 对象支持。对此 Properties 的改变不能在该 set 中反映出来,反之亦然。 


返回:
此属性列表中的键集,其中该键及其对应值是字符串,包括默认属性列表中的键。

简单实例: 首先a.properties文件:

name=lin
pass=1996

读取a.properties属性列表,与生成属性文件b.properties:

public static void main(String[] args) throws IOException {
			Properties properties = new Properties();
			InputStream inputStream = new BufferedInputStream(new FileInputStream("a.properties"));
		    properties.load(inputStream);
		    Iterator<String> iterator = properties.stringPropertyNames().iterator();
		    while (iterator.hasNext()) {
				String key = iterator.next();
				System.out.println(key+properties.getProperty(key));
			}
		    inputStream.close();
		    
		    FileOutputStream fileOutputStream = new FileOutputStream("b.properties",true);
		    properties.setProperty("55","222");
		    properties.store(fileOutputStream, "new");
		    fileOutputStream.close();
		
	}
【JAVA开发小技巧】Properties类读取properties、yml配置文件中的内容 当我们将项目部署到服务器上之后,我们不能专门地对代码中的常量进行修改,除非更新部署新的项目,但是我们的项目在上次更新之后,很有可能在其它方面也做了更新升级,这些更新的内容只有在通过测试之后才有资格部署到生产环境下。所以我们要想办法,解除常量与项目代码的耦合度,解决办法就是,当我们将项目部署到生产环境之后,能将项目中的常量进行配置化的管理。也就是说,项目中的常量最好是来源于配置文件的读取,这样我们只要修改配置文件即可修改项目中的常量。 阅读详情

相关推荐

FreeCAD MCP实战:用自然语言驱动AI建模,效率提升10倍

MCP(Model Context Protocol)是一种让AI模型调用外部工具和数据的协议标准,通过标准化通信层解决AI与CAD软件之间的交互难题。其原理是向AI暴露工具清单,AI根据自然语言需求自动选择工具并填充参数。在工程实践中,这一技术显著降低了CAD建模门槛,将重复性操作从手动点击转为语音指令,适用于批量零件生成、参数化设计等场景。FreeCAD作为开源CAD,凭借开放的Python API和脚本化能力,成为落地MCP的理想平台。本文基于FreeCAD MCP的实操经验,分享环境搭建、自然语言建

weixin_31188927的博客 320

Properties的存入和读取

Properties的getProperty()方法有两种重载方式,一种是getProperty(String key),一种是getProperty(String key,String defaultvalue),两种方式都是先找文件中的指定的key,看是否存在这个key,如果存在则返回key所对应的value值,若不存在,第一种方式直接返回null,第二种方式就是返回所给的 defaultvalue的默认值。Properties中的方法有很多种,最主要的功能就是实现数据的存入和读取。

aa1281943201的博客 1042

RunHarmony报错解析:如何解决data.use与cell.embeddings维度不匹配问题

本文深入解析了单细胞数据分析中RunHarmony函数报错'non-conformable arguments'的根源,即data.use与cell.embeddings矩阵维度不匹配。核心原因是assay(如RNA与integrated)错配导致细胞ID或数量不一致。文章提供了三种解决方案:最推荐显式指定assay.use参数,也可设置project.dim=FALSE或统一数据环境,并给出了最佳实践指南以避免此类错误。

weixin_29093017的博客 575

JavaSE基础(110) Properties文件的读写

Properties文件读写: (主要目的就是用来存储处理字符串数据) Properties 类表示了一个持久的属性集。 持久化:数据永久的保存存到硬盘中 属性集:一个数据的集合key - value ==》 String - String ①可保存在流中或从流中加载。 ②特殊的map集合【装了一个定的数据 】:可以将这些数据放入到 流中 : 直接 通过流将数据流动到磁盘 ③类 ...

郑清 663

SAP ABAP VL09 BAPI VL 216

ls_batch_item-fact_unit_denom = ls_lips_split-umvkn. "销售数量转换为 SKU 的值(分母)ls_batch_item-fact_unit_nom = ls_lips_split-umvkz. "销售数量转换成SKU的分子(因子)ls_batch_item-sales_unit_iso = ls_lips_split-meins. "被拆分DN基本单位。

ChampaignWolf的专栏 2297

KEIL5编译报错L6200E:__stdout重定义问题分析与解决

本文深入分析KEIL5编译报错L6200E中__stdout重定义问题的根源,指出因未完整定义__stderr导致与标准库stdio_streams.o冲突。提供完整重定义标准流、启用MicroLIB库等解决方案,帮助开发者彻底解决Symbol multiply defined错误,提升嵌入式开发效率。

uran的专栏 953

java读取properties配置文件的几种方式

项目中经常将一些配置信息放到properties文件中,读取非常方便,下面介绍几种java读取properties配置文件的方式。先看示例的properties文件: 方法一,基于InputStream读取配置文件: public static void main(String[] args) { readProperty1(); } //方法一 private static void readProperty1() { Properties properties = new Proper

Ivenwf的博客 1837

点云从入门到精通技术详解100篇-基于 CBCT 与口内扫描数据的牙齿点云配准

口扫生成的三维牙模型只包含牙冠结构,容易受到唾液、食物残留等杂质的干扰。像精度,但其扫描成本较高,在公立医院的普及率较低。此外,口扫探入式的体。完整、精确的牙齿信息,有助于医生更好地进行数字化辅助诊疗,提高手术的预。可以表示上颌骨、下颌骨、牙冠以及牙根的位置和形状,但其扫描分辨率较低,精配准前实现粗略的预配准来确定点云间的初始位置,为精配准提供良好的配准。该算法通过计算点对间的距离确定源点云中的某一点在目标点云中的对应。算两点之间的欧氏距离,运算量较大,而且由于算法只考虑点集间的距离而忽略。

getusushu的博客 1640

java中load_java中Properties的load()方法出错

importjava.io.IOException;importjava.io.InputStream;importjava.util.Properties;publicclassHelloWorld{publicstaticvoidmain(String[]args){Propertiesproperties=newProperties...import java.io.IOException;...

weixin_42130786的博客 1320

【全网首发】2026华为OD双机位C卷 机考真题题库含考点说明以及在线OJ (Java)

如果你收到的是双机位C卷考试通知,需要针对性地调整备考策略。自2025年11月19日起,华为OD机试已正式从双机位A卷切换至。复杂度明显提升,需要组合多个算法点。题面相对简单,直接考查编程基本功。考查问题分析、算法选择和优化能力。通常为1-2个核心算法点的应用。

算法大师! 165

想重装OpenClaw?先执行这4步彻底卸载,避免配置冲突

在重装OpenClaw之前,彻底卸载是非常重要的一步。如果不彻底卸载,可能会导致: - 残留的配置文件与新安装的版本冲突 - 旧的依赖包干扰新的安装过程 - 服务冲突导致启动失败 - 数据混乱影响系统稳定性

一键难忘的博客 1041

properties.load(输入流)

Properties的load方法其实就是传进去一个输入流,字节流或者字符流,字节流利用InputStreamReader转化为字符流,然后字符流用 BufferedReader包装,BufferedReader读取properties配置文件,每 次读取一行,分割成两个字符串。因为Properties是Map的子类, 然后用put将两个字符串装进Properties对象。 用...

weixin_30402343的博客 680

攻克反光难题!YOLOv9工业缺陷检测实战:高反光件、微小划痕精准识别(附抗反光代码+产线数据)

文章摘要:本文针对不锈钢、铝合金等高反光工业件的缺陷检测难题,提出了一套“硬件抗反光+YOLOv9小目标增强”的解决方案。通过分析反光干扰(镜面/漫反射)和微小划痕(0.1mm级)两大核心问题,详细介绍了500万像素工业相机+偏振光源的硬件配置方案,以及基于偏振图像融合和超分辨率放大的预处理方法。最终实现误检率1.2%、微小划痕检出率99.3%的工业级检测效果,并提供了可落地的代码实现和车间实测数据。(148字)

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1037

Java中读取properties配置文件的八种方式总结

一、前言 在做Java项目开发过程中,涉及到一些数据库服务连接配置、缓存服务器连接配置等,通常情况下我们会将这些不太变动的配置信息存储在以 .properties 结尾的配置文件中。当对应的服务器地址或者账号密码信息有所变动时,我们只需要修改一下配置文件中的信息即可。同时为了让Java程序可以读取 .properties配置文件中的值,Java的JDK中提供了java.util.Properties类可以实现读取配置文件。 二、Properties类 Properties 类位于 java.util.Pro

Thinkingcao的专栏 5万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

java中properties配置文件的用法

一、新建properties文件 在src文件下new一个file,命名为XXX.properties 二、编写配置文件 在properties的格式下,添加名值对的方式就不说了,说说在source格式下添加名值对的方式注意事项 1、名用大写比较规范 2、=两边别打空格 3、名值对写完后别打分号 三、在java中调用配置文件 1、实例化properties类(java.

wangdajiao的博客 6万+

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Java对properties配置文件的操作

Java对properties配置文件的操作/* * Created on 2005-1-4 * * TODO To change the template for this generated file go to * Window - Preferences - Java - Code Style - Code Templates */package com.yorsun;import

JESoft -- Garden 1746

Java—— 配置文件Properties

Properties是Java中的双列集合,具有Map集合特性,可用于存储软件配置参数,实现参数修改无需改动代码。它支持将键值对数据写入配置文件(store方法)或从配置文件读取到集合(load方法)。通过修改配置文件即可改变程序参数,实现配置永久化存储。示例展示了Properties的基本操作,包括数据添加、遍历及文件读写功能,演示了如何通过外部文件灵活调整程序配置。

zjy_ccccc的博客 674

Java的(.properties后缀)的配置文件介绍与读取(3种情况)

本篇博客的主要内容是关于Java的util包下Properties类、".properties"配置文件的认识与使用、读取。最后讲解了Java的配置文件位于3种不同的位置(整个项目/src目录/同包)下如何获取配置文件的资源...

岁岁岁平安的博客 4154

[Java]Properties类加载配置文件

在我JDBC的末尾展示了完整的JDBC使用流程。但那种方式有一个问题,如果项目需要更换数据库,或者这个项目本来就是要使用多种数据库,那么像这种把信息写死在代码里边的编写模式,是肯定不行的。实际开发中肯定不会使用这种把信息写死在代码里面的方法,像数据库的URL、连接路径这些配置信息,会单独用一个文件存储起来,这种编写模式其实就是"解耦"的思想体系。在代码量少、重复不多的时候,这边编写的优势不明显,但一旦项目大了之后,或者说要拓展功能,这种拆解分藕的模式就十分有益了。

m0_74217128的博客 1253

java读取.properties配置文件的几种方法

读取.properties配置文件在实际的开发中使用的很多,总结了一下,有以下几种方法(仅仅是我知道的): 一、通过jdk提供的java.util.Properties类。 此类继承自java.util.HashTable,即实现了Map接口,所以,可使用相应的方法来操作属性文件,但不建议使用像put、putAll这两个方法,因为put方法不仅允许存入String类型的value,还可以存入O

痴人说梦 7万+

Java读取properties配置文件的8种方式汇总

Properties 类位于 java.util.Properties中,是Java 语言的处理配置文件所使用的类,其中的xxx.Properties类主要用于集中的持久存储Java的配置文件内容,可以读取后缀是.properties和.cfg的配置文件。Properties类调用setProperty方法将键值对保存到内存中,此时可以通过getProperty方法读取,propertyNames方法进行遍历,但是并没有将键值对持久化到属性文件中,故需要调用store方法持久化键值对到属性文件中。

cuisidong1997的博客 3263

Java 读取properties配置文件的方式

在我们的代码中,经常需要将一些值放到配置文件中读取,这样的好处就是可以不需要重新编译代码就可以改变一些系统的属性,今天分享一个用java 读取properties配置文件的方法。 我把它直接写成了一个工具类,我现在每个项目开始之前,总要将这个工具类先放进去,具体方法是:可以直接将这个工具类放入util 包中就可以的使用里面的方法实现读取和写配置的功能了! 下面直接上代码 package com.p...

proven的博客 3505

Java中Properties配置文件的读取

properties文件是Java最常见的配置文件格式之一,对此Java提供了Util.Properties这个类来支持对properties文件的读写操作(这个类是线程安全的) Properties继承于map,可以理解是把键值都是String的map的存储 对于properties文件的读取,首先当然是new一个Properties对象 Properties properties=n

Dnstzzx的博客 327

java properties配置文件_java读取properties配置文件的方法

这篇文章主要介绍了java读取properties配置文件的方法,涉及java操作properties配置文件的相关技巧,需要的朋友可以参考下本文实例讲述了java读取properties配置文件的方法。分享给大家供大家参考。具体分析如下:这两天做java项目,用到属性文件,到网上查资料,好半天也没有找到一个满意的方法能让我读取到.properties文件中属性值,很是郁闷,网上讲的获取属性值大概...

weixin_32461163的博客 287
上一篇: Java序列化细节及实例
下一篇: Spring+SpringMVC+Hiberate+MySql+Bootstrap实现一个简单验证登录实例
Coder_py
博客等级 码龄10年 106粉丝 258原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值