项目有个模块是要把JSON压缩成Zip传到Linux服务器,另一个模块负责读Zip里面的内容。
而我负责的模块就是那个读Zip内容的。
本来以为只是洒洒水,大手一挥
String pocessedFilePath = "/data/tmpdata/xuehua001/success/2019-08-23/0823001_12_2019-08-23_134844679_134856.zip";
File file = new File(pocessedFilePath);
if (!file.exists()) {
//略
}
//一个私有的工具方法
List<String> lines = this.readZip(file);
....读到啦
然鹅,无论我怎么写,路径,始终找不到那个文件
于是开始找度娘
第一种说法:路径要转码为UTF-8,不然Linux识别不了。这个本来我就觉得不太对,我有记录路径的日志,在服务器上看了,发现路径没有问题
第二种说法:很简单,路径写错啦!我反复检查,乃至在服务器上pwd,没错啊?!
第三种说法:如果父级文件夹不是全开的权限,那是永远也找不到的。这个引发了我的思考:java程序算是创建者,同组,还是其他权限呢?但这个感觉更不靠谱。
然后访问了谷歌娘,谷歌娘也没给我什么更切实的答案。
然后第二天来了公司,我问了一下前辈。前辈说有可能运维配了路径,虽然实际路径是PWD查找的,但程序里的filePath要写配的
比如:
虽然实际路径确实存在,但如果程序里配实际的路径,是找不到文件的。
居然还有这种操作,昨晚我都在怀疑人生了,感觉自己的代码鬼打墙,望诸君知道还有这种操作,不要像我一样死磕。