基于Properties文件中的空格问题

 更新时间:2021年08月28日 09:26:36   作者:rightrat  
这篇文章主要介绍了Properties文件中的空格问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

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型,但是这个可能会抛异常,对,就算知道他可能抛异常,比如,传的字符串的值是null,或者转不成数字,那就异常啦。还是会出现一些问题。

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

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

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

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

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

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

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

    /**
     * 读取properties文件的值中会可能会有空格,需要处理一下。
     */
    private static void trimSpace(Properties prop) {
        for (Map.Entry<Object, Object> entry : prop.entrySet()) {
            entry.setValue(entry.getValue().toString().trim());
        }
    }

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

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java常用的八种排序算法与代码实现

    Java常用的八种排序算法与代码实现

    这篇文章主要给给大家分享Java常用的八种排序算法与代码实现,下面文章将详细介绍整个实现过程,感兴趣的小伙伙伴可以跟着小编一起来学习,希望对你有所帮助
    2021-10-10
  • 带你了解Java数据结构和算法之二叉树

    带你了解Java数据结构和算法之二叉树

    这篇文章主要为大家介绍了Java数据结构和算法之二叉树,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01
  • Springboot中使用Redis实现分布式锁的示例代码

    Springboot中使用Redis实现分布式锁的示例代码

    在分布式系统中,为了保证数据的一致性和任务的互斥执行,分布式锁是一种常见的解决方案,本文主要介绍了Springboot中使用Redis实现分布式锁的示例代码,具有一定的参考价值,感兴趣的可以了解一下
    2024-05-05
  • java应用开发之JVM运行时内存分析

    java应用开发之JVM运行时内存分析

    这篇文章主要介绍了java应用开发之JVM运行时内存,文中附含图文示例内容分析非常简要,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2021-09-09
  • ArrayList及HashMap的扩容规则讲解

    ArrayList及HashMap的扩容规则讲解

    今天小编就为大家分享一篇关于ArrayList及HashMap的扩容规则讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • Java8 LocalDateTime时间日期类使用实例详解

    Java8 LocalDateTime时间日期类使用实例详解

    本文从 LocalDateTime 类的创建、转换、格式化与解析、计算与比较以及其他操作几个方面详细介绍了 LocalDateTime 类在 Java 8 中的使用,感兴趣的朋友跟随小编一起看看吧
    2024-03-03
  • Java While循环 do-while循环用法

    Java While循环 do-while循环用法

    循环语句就是让计算机根据条件做循环计算,在条件满足时继续循环,条件不满足时退出循环,需要的朋友可以参考下
    2020-11-11
  • java中添加按钮并添加响应事件的方法(推荐)

    java中添加按钮并添加响应事件的方法(推荐)

    下面小编就为大家带来一篇java中添加按钮并添加响应事件的方法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • java编程实现获取服务器IP地址及MAC地址的方法

    java编程实现获取服务器IP地址及MAC地址的方法

    这篇文章主要介绍了java编程实现获取机器IP地址及MAC地址的方法,实例分析了Java分别针对单网卡及多网卡的情况下获取服务器IP地址与MAC地址的相关技巧,需要的朋友可以参考下
    2015-11-11
  • Spring AOP中的环绕通知详解

    Spring AOP中的环绕通知详解

    AOP是一种思想,是对某一类事情的集中处理,接下来我们要学习的是运用了AOP思想,进行AOP的环绕处理,本文通过实例讲解Spring AOP中的环绕通知,感兴趣的朋友一起看看吧
    2024-07-07

最新评论