ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Java读取配置文件的几种高效方法

Java读取配置文件的几种高效方法

在开发项目的过程之中, 有些参数或者像数据这样的情况, 是存在需要经常被进行改动的可能的。举例来说吧, 例如说是数据库的配置情况、ftp的路径信息、还有落地文件的路径信息等这些内容。针对这一类经常需要被去修改的数据内容, 我们就需要去做一件事情, 那就是把它们给写入在一个配置文件当中去。

紧接着, 我们要让这个程序有能力去读取这个配置文件。能够达成这样一种目的的话, 就使得每次进行修改操作的时候, 不再需要去对代码本身有所触动。这算是比较安全的做法, 也还算方便, 更称得上是快捷的解决方案。

下面是关于在咱们这个叫做Java的开发环境里头, 去弄那个用来读配置文件的几种办法的一个详细介绍。

这个类的作用是什么? 主要是用于读取Java程序里面的配置文件, 能够处理后缀名是点或者cfg的文件。文件里面的内容是怎么组成的? 格式是这样的就是键等于值, 可以举个例子, 比如name等于张三这样的写法。

如果在文件里面想要进行注释的话, 可以用符号井号来表示, 举个具体的例子就是井号后面跟着我是被注释掉的内容这几个字。从结构方面来看, 该类表示了一组持久存在的属性集合, 这些属性可以被保存在流里面或者从流里面加载出来。属性列表每一个键还有对应的那个值, 其实都是字符串。

常用的方法有这些: 第一个是叫load()这个方法, 它可以从输入流里面去读取属性列表, 这个列表里面包括键和元素对这两样东西。第二个方法是那个叫括号里面带一个key的方法, 它的意思就是根据你给的这个键, 到属性列表里面去查一查看, 看看能找到什么样对应的值呢。最后是实例这两个字。

配置文件

这段文本的编码方式是iso-8-4, 也就是test点一。

name=

=\u5317\u4EAC

test2.cfg, 以ISO-8859-1编码格式。

name=lisi

=\u5317\u4EAC

这个com.ck.utils。

java.util.Map.Entry;

java.util.;

java.util.Set;

/**

负责读取配置文件的一个工具方面的小类。

* @ 52363

*/

class {

/**

可以借助于类的形式, 来对配置文件信息进行读取。

* @param 配置文件的路径,配置文件可以是文件,也可以是cfg文件

在配置文件里面, 可能会出现这样的情况, 那就是等号等于的形式来连接键和值, 或者冒号这种符号来分隔开左边的那个名字还有右边的那个结果。

* @

*/

void ( ) {

等于 一个全新的。

这里可以选用两种不同的流, 把配置文件装载进来。

先把那个空的新实例给搞出来, 然后再把它传给那个新的类, 最后调用.load方法。

加载这个由.class方法所产生出来的内容。

你也可以直接给出那个键的名字, 然后去把对应的值拿过来。

// name = .("name");

Set> = .();

for (Entry entry : ) {

.out.(entry.()+" -- "+entry.());

测试类

这是com.ck.test。

org.junit.Test;

com.ck.utils.;

class {

/**

这次是要去测试一下, 具体是用那个类的load这个方法, 来对文件进行读取操作。

* @

*/

@Test

定义名称为test1的这个空的函数体部分, 紧接着开始。

这是用于表示测试编号为1的一个字符串常量。

/**

这个操作是通过调用那个类的加载方法来对配置文件进行读取, 并且其最终目的是用来进行测试。

* @

*/

@Test

void test2() {

.("//test2.cfg");

在完成test1的运行之后, 会呈现出相应的输出结果。在结束test2的运行操作以后, 同样能够得到其对应的输出结果。

代码目录结构

想查看源码的同学可以在我这里贡献出来的资源里面进行下载哦~希望大家都能一起共同进步, 并且提高自身的水平!

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进