List转String错误差坑记录

项目背景

项目中,需要将远程文件(多个)拉取到本地,并保存本地文件路径到数据库,供后续业务使用,路径存储分两个字段,一个存储基本路径,一个存储文件名。.

采坑过程

由于文件是多个,且本地文件名称使用UUID重新生成,在拉取文件的过程中,使用List
暂存文件路径,在入库是,开始使用 List.toString进行转化后入库,但是发现转化后的数据存在[],后续取值后需要再次处理,与是想到直接去掉[],最终处理方法为
StringUtils.strip(localFileNames.toString(),"[ ]")

存在问题

在线上实际操作过程中,发现业务无法正常进行,进行日志查找,定位问题为,本地文件路径不对,导致文件读取异常,经过路径分析,发现在业务处理时,拼接出的文件本地路径,文件名称部分存在空格,导致路径不对,对代码进行排查,发现使用StringUtils.strip转换出来的文件名称,每个,分割符后面存在空格,进而导致读取文件存在错误

解决办法

在开发过程中,由于思维连贯性,在使用toString对list进行转换时,发现存在[]的情况,只想着如何去掉[]了,实际上将List转String有更好的方法,终止修改后,使用的方法为:
String.join(",", localFileNames)
并且为进一步防止空格的问题,在进行路径拼接的地方使用trim进行过滤:
filePath + it.next().trim()

*总结

虽涉及到的技术很基础,但是毕竟到线上出现问题还是浪费的时间去排查处理,在版本更新前,只能通过人工的方式去掉数据库里存在空格的数据,还是造成的不好的影响,产生这种问题的主要原因有

  • 业务开发流程中,不够重视细节,在测试时,只关注整体流程的完好性,测试的时候使用的单个文件,导致问题没有提前暴露
  • 思维连贯性太强,在遇到问题时,只是去想着解决新出现的问题,并没有从头去考虑问题,也许从开始就错了
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值