基于Properties文件中的空格问题

网友投稿 2440 2022-12-14

基于Properties文件中的空格问题

基于Properties文件中的空格问题

目录Properties文件中的空格问题默认情况下读properties文件时,值中有空格,可能会引起bug但是在读取配置的时候,发现如下debug图先看下我读取的配置文件具体是什么样的然后再看看读出来到debug是什么样的

Properties文件中的空格问题

默认情况下

空格可以作为Properties文件中Key和Value的分隔符,当我们需要在Key中使用空格的时候,可以使用反斜杠(\)对空格进行转移。

注: 斜杠为(/),反斜杠为(\)。

读properties文件时,值中有空格,可能会引起bug

一般properties文件都是配置文件,但是我们在读取配置信息的时候,可能会有一些莫名其妙的错误。就比如:

我读的配置很多事数字,不是long就是int,不全是字符串,那么问题来了。在把字符串转换成int或者long的时候,就bug啦

Long keepAlive = null;

try {

keepAlive = Long.parseLong(properties.getProperty(prefix + channelName + "." + Channel.KEEP_ALIVE_KEY));

} catch (Exception e) {

System.out.println(e.getMessage());

}

首先,你得机智的知道,这个方法 Long.parseLong(string) ,可以把字符串转成long型,XQoFgHdl但是这个可能会抛异常,对,就算知道他可能抛异常,比如,传的字符串的值是null,或者转不成数字,那就异常啦。还是会出现一些问题。

但是在读取配置的时候,发现如下debug图

看到我读取的值9,后面还带了个空格,那么这样子,肯定转换成数据类型的时候就要抛异常咯。

先看下我读取的配置文件具体是什么样的

可以看到我的key也是有很多的空格的,前后都有。

然后再看看读出来到debug是什么样的

大致,总结一下,就是key的空格,他是不管的,但是对于value的空格,他就只留后面的一个空格。好像是这么滴吧

所以,在读取到配置信息键值对,有必要对所有的键值对,统一处理一下。

/**

* 读取properties文件的值中会可能会有空格,需要处理一下。

*/

private static void trimSpace(Properties prop) {

for (Map.Entry entry : prop.entrySet()) {

entry.setValue(entry.getValue().toString().trim());

}

}

这么处理一下就可以啦,因为是地址传递的,你只要把你读的prop当参数,走这方法一遭,就把空格处理啦。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:基于spring注入为null的原因及解决方案
下一篇:解决Properties属性文件中的值有等号和换行的小问题
相关文章

 发表评论

暂时没有评论,来抢沙发吧~