趣文网 > 作文大全

使用FileReader如何读取项目配置文件

2020-12-06 19:40:01
相关推荐

Java程序创建配置文件的目的是便于程序的修改和维护,程序需要的全局数据都可以存储到配置文件中,程序运行后可以直接读取配置文件获取全局数据,当需要修改全局数据时,只需要修改配置文件就可以了,而无需修改代码。

在前面一节中,我们使用FileWriter创建了一个数据库配置文件,该配置文件主要用于存储数据库连接地址、数据库访问账号和密码。当程序需要连接数据库时,可以从配置文件中读取数据库的连接地址、访问账号和密码。这样做的好处是可以确保连接数据库所需要的数据是唯一的,如果数据改变了,仅需修改配置文件即可,所有涉及到连接数据库的代码都无需修改。

编程案例

本次编程任务的要求是读取前面一节创建的配置文件myproperty.txt,该配置文件结构如下:

jdbc.url=jdbc:mysql://192.168.50.25:3306

jdbc.username=root

jdbc.password=123456

在上面的文件结构中,jdbc.url、jdbc.username、jdbc.password为配置文件的属性名称,其等号右边的内容为属性的值。要求案例程序不仅要读出配置文件内容,还要识别出属性和属性值。

编程探讨

依据编程案例给出的任务要求,首先要读取配置文件内容,并识别出配置文件内容的属性和属性值。

读取配置文件内容,可以考虑使用FileReader类,FileReader类是字符输入类,它的构造方法同FileInputStream相同,也提供了四个常用的构造方法。分别说明如下:

场景1:应用File对象,实例化一个FileReader对象

FileReader (File file);

场景2:应用给出的文件路径,实例化一个FileReader对象

FileReader (String fileName);

本案例为读取配置文件,采用FileReader (String fileName)构造方法,直接传入配置文件路径。

FileReader对象实例化后,可以使用FileReader提供的读取方法,读取配置文件内容。FileReader类提供了两种读取方法,说明如下:

● public int read() throws IOException

该方法用于读取单个字符,返回int类型,该int类型表示字符。

● public int read(char [] c, int offset, int len) throws IOException

该方法用于从文件的offset位置开始,读取len个字符到数组c,返回读取的字符数。

FileReader并没有提供按行读取文本内容的方法,因此我们需要实现一个按行读取文本内容的函数,该函数从文件中循环读取单个字符,并赋值给String对象,当读取到换行符时,结束读取,返回String对象。

另外,程序还需要一个识别属性和值的函数,该函数识别传入的字符串对象,调用String类的Split方法,用’=’号做分隔符,识别出配置文件的属性和值。识别出的属性和值存储到HashMap集合中,其属性为HashMap的key,值为HashMap的value。

编程实现

程序实现涉及到类有FileReader类、File类、String类和HashMap集合类。其实现过程如下图所示:

图 16-13 读取配置文件流程图

上面所示的流程图中,按行读取和识别属性和值框分别为程序要实现的函数。

readLine函数按行读取配置文件的内容,函数循环读取文件中的单个字符,当字符为r或n时,程序判断遇到了行结束符,返回已读取的字符串。

split函数用于识别配置文件的属性和值,并将属性和值加入到map集合中,因为配置文件中的属性和值用等号分割,因此应用String类的split方法将字符串用等号分割为包含两个元素的字符串数组,数组的第一个元素为属性,第二个元素为值。

程序最后遍历map集合,输出配置文件的属性和值。程序输出结果如下图所示:

图 16-14 用FileReader读取配置文件输

■ 知识点拨

FileReader主要是读取文本类文件,可以读取单个字符,也可以将多个字符读取到一个字符数组中。遗憾的是,FileReader没有提供按行读取的方法,如果需要按行读取,需要自己实现按行读取方法。

阅读剩余内容
网友评论
相关内容
延伸阅读
小编推荐

大家都在看

关于劳动的作文800字 美丽的校园600字作文 有关文化自信的作文 醒来作文600字 作文题目空几个格 散步作文600字初中 关于扫雪的作文 雅思大作文字数 身边风景也动人作文 一次旅行作文300字 几分甜蜜在心头作文 人与自然作文800字 我的家乡哈尔滨作文 英语四级作文真题范文 关于事的作文300字 有关师生情的作文 抓娃娃作文400字 关于做家务的英语作文 春到校园作文 保护环境作文200字 介绍自己家人的英语作文 吃火锅的作文400字 假如给我三天光明作文 高考优秀作文600字 河南省中招作文 父亲节作文300 打屁股沟作文 我最崇拜的人英语作文 打羽毛球作文600字 温暖的阳光作文600字