properties文件第一行获取的值为null,无法读取第一行数据

一、 配置文件temp.properties如下:

dataTransName=data_exchange
updatePerson=张三

二、现象描述:

        后台读取上传的update_config.properties文件内容,根据第一行对应的key(dataTransName)获取值时始终获取到的值为null。

三、报错原因分析:

        明明是有这个dataTransName的key, 却仍报错。察看Properties类后找到了问题的原因:编码格式。

        properties文件是基于行来读取和存储键值对的, 而期望的输入输出流字符编码是ISO 8859-1。 那些不能使用该方式存储的字符集呢,需要使用native2ascii命令对property文件进行转码。

        由于我的这个配置文件中有中文, 所以我使用了UTF-8的编码方式存储, 使用UTF-8存储的坏处就是会多出一些特殊字符(乱码); 使用UE在16进制下查看发现, dataTransName变成了"锘縟ataTransName",当程序中再次查找dataTransName时, 就会报错, 找不到key(dataTransName)。

四、解决方案:

        方案一:仍然使用UTF-8编码方式,将第一行给空出来;

     方案二:仍然使用UTF-8编码方式,将第一行写成注释;

        方案三:使用UTF-8无BOM编码方式(推荐使用);

方案四:使用ISO 8859-1的编码方式,中文用/u开头的unicode方式保存。

原文:https://blog.csdn.net/weixin_42273374/article/details/80405456

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值