今天碰见了一个问题,代码生成器在test的过程中一直在报错。
E:\insurance%20controller\2018.04.23\insurance\insurance-business\target\classes\templates\freemarker
does not exist.
这是一个常见的IO异常,无非就两种情况,一种是file 真的不存在,另一种想法是用户权限没有获得。
但经过了20分钟,发现不是两种以上情况,正当我迷茫之际,突然看见了 %20 这个东西。
这个文件夹中含有一个空格,FileOutputStream生成对象的时候,路径中的空格会被编码转换成%20,这个时候问题就来了,系统就会报错,找不到指定文件。
(ps:路径中存在中文和特殊字符也会引起这个问题。)
在别处找到了解决方案,连接在这里 http:///content/11/1009/17/4602013_154657565.shtml
方法2 : (path,"UTF-8");
我选了一个很直接的方法:把文件名的“space”删掉,当然了 这是我项目的上层文件夹,修改一下无所谓的,项目比较小,重新配置一下就好了。 如果是项目内文件夹出现此类错误的应当采用方法2 进行UTF-8的解码。
编程了这么久,发现阿里的代码规范还是有必要一看的。 严格按照代码规范进行变成和起名,有助于减少此类不必要的错误。