Properties

本文介绍Java中Properties类的基本用法,包括如何使用.properties配置文件、编程解析配置信息及常见方法。Properties类继承自Hashtable,用于处理字符串类型的键值对。

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

类定义

public class Properties extends Hashtable<Object,Object>

Properties中key和value都是String类型,Properties没有泛型约束,但是key和value都是String类型,用来读配置文件(.properties资源文件、xml配置文件)

1、使用后缀为.properties配置文件
        语法规则:  key=value 前面是固定的配置项名称,等号是唯一的符号[# 是注释符],等号后就是配置信息
        properties文件中只能使用单字节编码的内容,如果需要使用中文,则需要进行编码转换
        JDK提供的转换工具为native2scii或者直接使用IDE工具中提供的插件,例如输入中文【说明信息】则显示为【\u8BF4\u660E\u4FE1\u606F】
例如配置文件  当前文件夹下 jdbc.properties
        name=\u6768\u56FD\u98DE
        age=18
        sex=false

2、编程解析配置信息
        Properties ps=new Properties();
        //通过Properties对象提供的方法读取配置文件,并自动进行解析
        ps.load(is);
        //调用ps对象的getProperty方法获取指定配置项的配置值
        String ss=ps.getProperty("name");

常用方法

setProperty(String key,String value)        调用Hashtable的方法put

getProperty(String key)        用指定的键在此属性列表中搜索属性,如果没有对应的key配置,则返回null

getProperty(String key, String defaultValue)        用指定的键在属性列表中搜索属性,如果没有对应的key,则defaultValue生效

load(InputStream inStream)        从输入流中读取属性列表(键和元素对)


load(Reader reader)        按简单的面向行的格式从输入字符流中读取属性列表(键和元素对)

loadFromXML(InputStream in)        将指定输入流中由 XML 文档所表示的所有属性加载到此属性表中。 具体应用开发中一般使用DOM4j或者JAXP之类的工具

store(OutputStream out, String comments)        以适合使用 load(InputStream)方法加载到 Properties 表中的格式,将此Properties 表中的属性列表(键和元素对)写入输出流


store(Writer writer, String comments)        以适合使用 load(Reader) 方法的格式,将此 Properties 表中的属性列表(键和元素对)写入输出字符

storeToXML(OutputStream os, String comment)        发出一个表示此表中包含的所有属性的 XML 文档

storeToXML(OutputStream os, String comment, String encoding)        使用指定的编码发出一个表示此表中包含的所有属性的 XML 文档

示例代码如下

import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
public class TestProperties {
	public static void main(String[] args) throws IOException {
		//使用当前类的类加载器获取jdbc.properties的输入流,要求properties和当前类必须在同一个文件夹下
		InputStream is=TestProperties.class.getResourceAsStream("jdbc.properties");
		//构建Properies对象
		Properties ps=new Properties();
		ps.setProperty("name1", "全冠清");
		//通过Properties对象提供的方法读取配置文件,并自动进行解析
		ps.load(is);
		//调用ps对象的getProperty方法获取指定配置项的配置值
		String ss=ps.getProperty("name");
		System.out.println(ss);
		//所有的配置内容只能以String类型进行接收,如果其它类型需要自行编码转换
		
		ss=ps.getProperty("name1");
		System.out.println(ss);
		
		// 所有的配置内容只能以String类型进行接收,如果其它类型需要自行编码转换
		
		ss=ps.getProperty("age");
		int age=Integer.parseInt(ss.trim());
		System.out.println(age);
		
		ss=ps.getProperty("\u773C\u775B");
		System.out.println(ss);
		
		ss=ps.getProperty("\u6027\u522B");
		System.out.println(ss);
		
		ps.store(new FileWriter("bb.bak"), "说明信息");
		
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值