Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Java中的Properties类详解Properties配置文件

Java中的Properties类详解Properties配置文件

作者头像
张哥编程
发布于 2024-12-19 02:20:05
发布于 2024-12-19 02:20:05
99101
代码可运行
举报
文章被收录于专栏:云计算linux云计算linux
运行总次数:1
代码可运行

1.Properties类是什么?

Properties(Java.util.Properties),该类主要用于读取Java的配置文件,不同的编程语言有自己所支持的配置文件,配置文件中很多变量是经常改变的,为了方便用户的配置,能让用户够脱离程序本身去修改相关的变量设置。就像在Java中,其配置文件常为.properties文件,是以键值对的形式进行参数配置的。

3.常用的方法

getProperty(String key) 在此属性列表中搜索具有指定键的属性。如果在此属性列表中找不到该键,则会检查默认属性列表及其默认值(递归)。如果未找到该属性,则该方法返回默认值参数。

list(PrintStream out) 将此属性列表打印到指定的输出流。此方法对于调试很有用。

load(InputStream inStream) 从输入字节流中读取属性列表(键和元素对)。输入流采用加载(Reader)中指定的简单的面向行的格式,并假定使用ISO 8859-1字符编码;即每个字节是一个Latin1字符。不在Latin1中的字符和某些特殊字符在使用Unicode转义符的键和元素中表示。 此方法返回后,指定的流仍保持打开状态。

setProperty(String key, String value) 调用 Hashtable 的方法 put 。他通过调用基类的put方法来设置 键值对。

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

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

clear() 清除此哈希表,使其不包含任何键。

stringPropertyNames() 返回此属性列表中的一组键,其中键及其对应的值是字符串,如果尚未从主属性列表中找到相同名称的键,则包括默认属性列表中的不同键。键或键不是String类型的属性将被省略。

————————————————

1.Properties类与Properties配置文件

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

2.Properties中的主要方法

(1)load(InputStream inStream)

  这个方法可以从.properties属性文件对应的文件输入流中,加载属性列表到Properties类对象。​如下面的代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Properties pro = new Properties();
//使用类加载机制,读取配置文件;
    static InputStream is=BaseDao.class.getClassLoader().getResourceAsStream("db.properties");
pro.load(in);
in.close();

(2)store(OutputStream out, String comments)

  ​这个方法将​Properties类对象的​属性列表保存到输出流中​​。​如下面的代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
FileOutputStream oFile = new FileOutputStream(file, "a.properties");
pro.store(oFile, "Comment");
oFile.close();

如果comments不为空,保存后的属性文件第一行会是#comments,表示注释信息;如果为空则没有注释信息。

  注释信息后面是属性文件的当前保存时间信息。

(3)getProperty/setProperty

  这两个方法是分别是获取和设置属性信息。

3.代码实例

属性文件a.properties如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
name=root
pass=liu
key=value

读取a.properties属性列表,与生成属性文件b.properties。代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1 import java.io.BufferedInputStream;
 2 import java.io.FileInputStream;
 3 import java.io.FileOutputStream;
 4 import java.io.InputStream; 
 5 import java.util.Iterator;
 6 import java.util.Properties; 
 7 
 8 public class PropertyTest {
 9     public static void main(String[] args) { 
10         Properties prop = new Properties();     
11         try{
12             //读取属性文件a.properties
13             InputStream in = new BufferedInputStream (new FileInputStream("a.properties"));
14             prop.load(in);     ///加载属性列表
15             Iterator<String> it=prop.stringPropertyNames().iterator();
16             while(it.hasNext()){
17                 String key=it.next();
18                 System.out.println(key+":"+prop.getProperty(key));
19             }
20             in.close();
21             
22             ///保存属性到b.properties文件
23             FileOutputStream oFile = new FileOutputStream("b.properties", true);//true表示追加打开
24             prop.setProperty("phone", "10086");
25             prop.store(oFile, "The New properties file");
26             oFile.close();
27         }
28         catch(Exception e){
29             System.out.println(e);
30         }
31     } 
32 }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-02-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
java读取 properties
1. java.util.Properties 为读取.properties文件提供了相关的方法。 2.Properties中的主要方法 (1)load(InputStream inStream)    这个方法可以从.properties属性文件对应的文件输入流中,加载属性列表到Properties类对象。如下面的代码: Properties pro = new Properties(); FileInputStream in = new FileInputStream("a.properties");
用户1220053
2018/02/09
1.6K0
Java中Properties集合
②可以使用Properties的store方法,把集合的临时数据,持久化地写入到硬盘中;
訾博ZiBo
2025/01/06
1210
Java中Properties集合
Java Properties集合基础解析
java.util.Properties集合继承于Hashtable,来表示一个持久的属性集,他使用键值结构存储数据,每个键及其对应的值都是一个字符串,该类被许多java类使用,比如获取系统属性时,System.getProperties,方法就是返回一个Properties对象
一只胡说八道的猴子
2020/09/27
7870
Java  Properties集合基础解析
java resourcebundle_Java – Properties和ResourceBundle类学习「建议收藏」
在项目的开发过程中,为了统一配置的管理,我们经常需要将一些配置信息根据环境的不同,配置在不同的properties中,然后从里面进行读取。而Properties类作为最基础也是最经常使用的类,通过本文我们来学习一下它的使用,然后再顺便学习下其他几种读取properties文件的方式。
全栈程序员站长
2022/09/14
3700
【Java 基础篇】Java Properties 详解:配置文件和键值对存储
在 Java 编程中,配置文件和键值对存储是非常常见的需求,用于存储应用程序的配置参数、用户首选项、国际化信息等。Java 提供了 Properties 类来处理这种类型的数据,它是一个轻量级的配置文件和键值对存储工具。本文将详细介绍 Java 的 Properties 类,向您展示如何使用它来管理配置数据。
繁依Fanyi
2023/10/12
3.1K0
【Java 基础篇】Java Properties 详解:配置文件和键值对存储
Java成神路 —— Properties集合
1.1 Properties作为Map集合的使用 1. Properties介绍 Properties 是一个Map体系的集合类 Properties可以保存到流中或从流中加载 属性列表中的每个键及其对应的值都是一个字符串 2. Properties基本使用示例代码: 1.2 Properties作为Map集合的特有方法 1. 特有方法 方法名 说明 Object setProperty(String key,String value) 设置集合的键和值,都是String类型,底层调用 Hashtable方
繁依Fanyi
2023/05/07
2480
Java 操作 properties 文件
import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.Properti
用户1503405
2021/09/22
5890
Java中Properties类的操作
    知识学而不用,就等于没用,到真正用到的时候还得重新再学。最近在看几款开源模拟器的源码,里面涉及到了很多关于Properties类的引用,由于Java已经好久没用了,而这些模拟器大多用Java来写,外加一些脚本语言Python,Perl之类的,不得已,又得重新拾起。本文通过看《Java编程思想》和一些网友的博客总结而来,只为简单介绍Properties类的相关操作。 一、Java Properties类     Java中有个比较重要的类Properties(Java.util.Properties)
Linux云计算网络
2018/01/10
1.5K0
Java中Properties类的操作
Java(io流—Properties、序列化流与反序列化流)
反序列化时,保证类文件.class文件存在,否则抛出ClassNotFoundException异常;
全栈开发日记
2022/05/12
2930
Java(io流—Properties、序列化流与反序列化流)
Java读写Properties属性文件公用方法
Java中有个比较重要的类Properties(Java.util.Properties),主要用于读取Java的配置文件,各种语言都有自己所支持的配置文件,配置文件中很多变量是经常改变的,这样做也是为了方便用户,让用户能够脱离程序本身去修改相关的变量设置。像Python支持的配置文件是.ini文件,同样,它也有自己读取配置文件的类ConfigParse,方便程序员或用户通过该类的方法来修改.ini配置文件。在Java中,其配置文件常为.properties文件,格式为文本文件,文件的内容的格式是“键=值”的格式,文本注释信息可以用"#"来注释。
Java帮帮
2018/08/06
1.3K0
Java读写Properties属性文件公用方法
Java之Properties及对象序列化
Properties 是在java.util包中,该类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。
用户5224393
2019/08/20
2.5K0
【愚公系列】2022年01月 Java教学课程 58-Properties集合
在Properties文件中手动写上姓名和年龄,读取到集合中,将该数据封装成学生对象,写到本地文件
愚公搬代码
2022/01/15
2360
【愚公系列】2022年01月 Java教学课程 58-Properties集合
day17-缓冲流&转换流&序列化流&打印流&Properties
前期我们学习了基本的一些流,作为IO流的入门,今天我们要见识一些更强大的流。比如能够高效读写的缓冲流,能够转换编码的转换流,能够持久化存储对象的序列化流等等。这些功能更为强大的流,都是在基本的流对象基础之上创建而来的,就像穿上铠甲的武士一样,相当于是对基本流对象的一种增强。
张哥编程
2024/12/13
1250
Java基础-22总结转换流,随机访问流,合并流,序列化流,Properties
(3)转换流: package cn.itcast_04; import java.io.BufferedWriter; import java.io.IOException; import java.io.OutputStreamWriter; /* * 转换流的应用。 */ public class SystemOutDemo2 { public static void main(String[] args) throws IOException { // 获取标准输入流 // // Prin
Java帮帮
2018/03/16
1.1K0
面对Properties的各种坑,你需要知道的Java小技巧
咦咦咦,各位小可爱,我是你们的好伙伴——bug菌,今天又来给大家普及Java SE相关知识点了,别躲起来啊,听我讲干货还不快点赞,赞多了我就有动力讲得更嗨啦!所以呀,养成先点赞后阅读的好习惯,别被干货淹没了哦~
bug菌
2024/08/06
4540
面对Properties的各种坑,你需要知道的Java小技巧
《JavaSE-第十五章》之文件(二)
由于文件编码与代码文件编码不一致,从而会导致乱码,为了解决上述问题,可以使用转换流,在将数据输入和输出时指定流的编码格式与文件的编码格式保持一致。
用户10517932
2023/10/07
1850
《JavaSE-第十五章》之文件(二)
《手把手教你》系列技巧篇(七十)-java+ selenium自动化测试-Java中如何读取properties配置文件内容(详解教程)
Java自动化测试开发中,需要将一些易变的配置参数放置再 XML 配置文件或者 properties 配置文件中。然而 XML 配置文件需要通过 DOM 或 SAX 方式解析,而读取 properties 配置文件就比较容易。因此今天宏哥讲解和分享如何读取properties配置文件的内容。
北京-宏哥
2022/03/09
8780
《手把手教你》系列技巧篇(七十)-java+ selenium自动化测试-Java中如何读取properties配置文件内容(详解教程)
深度解析Java中的Properties集合
今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。
喵手
2023/11/17
2700
深度解析Java中的Properties集合
读取properties文件的6种方式,建议收藏!
这年头基本上都是使用Spring Boot开发,然后都知道在项目中会有个application.properties配置文件(也有的是application.yaml,反正就是用来保存我们的一些配置信息),通常我们会把一些配置信息写到properties文件中,比如:数据库连接信息、第三方接口信息(密钥、用户名、密码、地址等),连接池、Redis配置信息、各种第三方组件配置信息等。
田维常
2023/08/31
2.9K0
读取properties文件的6种方式,建议收藏!
JAVA入门学习九
描述:序列流可以把多个字节输入流整合成一个, 从序列流中读取数据时将从被整合的第一个流开始读, 读完一个之后继续读第二个以此类推。 原因:由于多个输入流写入到一个输出流,代码重复性高则采用序列流进行输出; 基础语法:
全栈工程师修炼指南
2020/10/23
3970
推荐阅读
相关推荐
java读取 properties
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验