原标题:java读取配置文件的几种方法

在现实工作中,我们常常需要保存一些系统配置信息,大家一般都会选择配置文件来完成,本文根据笔者工作中用到的读取配置文件的方法小小总结一下,主要叙述的是spring读取配置文件的方法。

一.读取xml配置文件

(一)新建一个java bean(HelloBean.java)

java 代码

package chb.demo.vo;

public class HelloBean {

private String helloWorld;

public String getHelloWorld() {

return helloWorld;

}

public void setHelloWorld(String helloWorld) {

this.helloWorld = helloWorld;

}

}

(二)构造一个配置文件(beanConfig.xml)

xml 代码

!----xml version=1.0 encoding=UTF-8?

!----

beans

bean id=helloBean class=chb.demo.vo.HelloBean

property name=helloWorld

valueHello!chb!value

property

bean

beans

(三)读取xml文件

1.利用ClassPathXmlApplicationContext

java 代码

ApplicationContext context = new ClassPathXmlApplicationContext(beanConfig.xml);

HelloBean helloBean = (HelloBean)context.getBean(helloBean);

System.out.println(helloBean.getHelloWorld());

2.利用FileSystemResource读取

java 代码

Resource rs = new FileSystemResource(D:/software/tomcat/webapps/springWebDemo/WEB-INF/classes/beanConfig.xml);

BeanFactory factory = new XmlBeanFactory(rs);

HelloBean helloBean = (HelloBean)factory.getBean(helloBean);\

System.out.println(helloBean.getHelloWorld());

值得注意的是:利用FileSystemResource,则配置文件必须放在project直接目录下,或者写明绝对路径,否则就会抛出找不到文件的异常

二.读取properties配置文件

这里介绍两种技术:利用spring读取properties 文件和利用java.util.Properties读取

(一)利用spring读取properties 文件

我们还利用上面的HelloBean.java文件,构造如下beanConfig.properties文件:

properties 代码

helloBean.class=chb.demo.vo.HelloBean

helloBean.helloWorld=Hello!chb!

属性文件中的helloBean名称即是Bean的别名设定,.class用于指定类来源。

然后利用org.springframework.beans.factory.support.PropertiesBeanDefinitionReader来读取属性文件

java 代码

BeanDefinitionRegistry reg = new DefaultListableBeanFactory();

PropertiesBeanDefinitionReader reader = new PropertiesBeanDefinitionReader(reg);

reader.loadBeanDefinitions(new ClassPathResource(beanConfig.properties));

BeanFactory factory = (BeanFactory)reg;

HelloBean helloBean = (HelloBean)factory.getBean(helloBean);

System.out.println(helloBean.getHelloWorld());

(二)利用java.util.Properties读取属性文件

比如,我们构造一个ipConfig.properties来保存服务器ip地址和端口,如:

properties 代码

ip=192.168.0.1

port=8080

则,我们可以用如下程序来获得服务器配置信息:

java 代码

InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(ipConfig.properties);

Properties p = new Properties();

try {

p.load(inputStream);

} catch (IOException e1) {

e1.printStackTrace();

}

System.out.println(ip:+p.getProperty(ip)+,port:+p.getProperty(port));

本文只介绍了一些简单操作,不当之处希望大家多多指教返回搜狐,查看更多

责任编辑:

java加载xml配置文件_java读取配置文件的几种方法相关推荐

  1. java遍历文件和归类_java读取文件的两种方法:java.io和java.lang.ClassLoader

    java读取文件的两种方法:java.io和java.lang.ClassLoader 什么时候使用java.io,什么时候使用java.lang.ClassLoader呢? (注:要是之前读xml文 ...

  2. java加载配置文件_Java 读取配置文件的五种方式

    方式一:采用ServletContext读取,读取配置文件的realpath,然后通过文件流读取出来. 因为是用ServletContext读取文件路径,所以配置文件可以放入在WEB-INF的clas ...

  3. java加载字体文件_Java的加载自定义字体文件(.TTF)

    我在下面这段代码中使用,并将其与该堆栈跟踪出现:Java的加载自定义字体文件(.TTF) java.io.FileNotFoundException: font.ttf (No such file o ...

  4. 页面加载完后立刻执行JS的两种方法

    方式一:window.onload: 当一个文档完全下载到浏览器中时,才会触发window.onload事件.这意味着页面上的全部元素对js而言都是可以操作的,也就是说页面上的所有元素加载完毕才会执行 ...

  5. java的字符串截取函数_java 字符串截取的三种方法(推荐)|chu

    众所周知,java提供了很多字符串截取的方式.下面就来看看大致有几种. 1.split()+正则表达式来进行截取. 将正则传入split().返回的是一个字符串数组类型.不过通过这种方式截取会有很大的 ...

  6. java io 读取配置文件_java读取配置文件 - tomzhao2008的个人空间 - OSCHINA - 中文开源技术交流社区...

    对于要打包成jar文件来运行来说,用file是会有问题的,下面的程序可以解决这样的问题 1.ReadPropsUtil /** * */ package readproperties; import ...

  7. java加载不进去_java sql添加不进去

    运行显示的成功,没有报错,但是数据库里面没有数据staticjtscreenjs=newjtscreen();privatestaticStringnicheng=js.getText();stati ...

  8. java遍历是什么意思_Java遍历集合的几种方法分析(实现原理、算法性能、适用场合)...

    概述 Java语言中,提供了一套数据集合框架,其中定义了一些诸如List.Set等抽象数据类型,每个抽象数据类型的各个具体实现,底层又采用了不同的实现方式,比如ArrayList和LinkedList ...

  9. java中如何读写文件_JAVA: 读写文件的几种方法

    如果您使用java8,可以也参考这篇文章:JAVA: Java8流逐行读取文件 import java.io.BufferedReader; import java.io.BufferedWriter ...

最新文章

  1. scala构建工具sbt使用介绍
  2. 每日一皮:客户期望 vs 最终产品
  3. Java多线程详解(二)
  4. Linux bash命令操作和VI编辑器操作
  5. 2021湖北高考个人成绩排名查询,2021湖北高考总成绩一分一段排名
  6. android 拖拽gridview,Android 可拖拽的GridView效果实现, 长按可拖拽和item实时交换
  7. 识辨 | 什么是分类?什么是聚类?
  8. Funcode学习笔记:完成Run、Jump、Idle等动作【后续更新Roll、Attack动作的实现】【By Myself】
  9. J1939标准概述【小白入门】
  10. java 定时任务的实现_Java定时任务实现的几种方式
  11. ERP原理及应用教程-第二章
  12. DES 加密解密方法
  13. 解决命令提示符已被系统管理员停用的问题
  14. 白杨SEO:淘宝客、淘客是什么、赚钱方式及怎么入门和推广引流?
  15. MathML与SVL
  16. 【React】项目中组件化使用svg格式的图片
  17. 下拉列表详解再详解,快速掌握!(内有代码)
  18. python web前端 java ui学哪个好_学IT选Java还是Python?就业发展有何区别?
  19. Yeslab现任明教教主CCNP Security第四天第一部分视频共享
  20. 网络适配器坏网卡驱动安不好(代码56)The Realtek Network Controller

热门文章

  1. qsort函数应用大全
  2. 职高中专的模块化课程设计难点
  3. JBoss5.x6.x 反序列化漏洞
  4. [安全攻防进阶篇] 一.什么是逆向分析、逆向分析应用及经典扫雷游戏逆向
  5. [Pyhon疫情大数据分析] 一.腾讯实时数据爬取、Matplotlib和Seaborn可视化分析全国各地区、某省各城市、新增趋势
  6. HarmonyOS之设备传感器的功能和使用
  7. Python读取大文件的坑“与内存占用检测
  8. 【分治的典型应用:归并排序】
  9. 【Linux】一步一步学Linux——declare命令(217)
  10. 【STM32】 keil软件工具--configuration详解(下)