上篇我们实现了把字符串中的${}转换成对应的值,这次我们就处理一下文件中的${}吧。
其实处理文件的${}和处理字符串中的类似,因为文件也是由一行行的字符串组成的。话休絮烦。我们开工。
同StringResource类似,我们新建一个FileResource类,它也继承自Resource。它的构造参数里需要传入一个文件路径,生成的文件名在源文件名后追加_out,(后期可以做成把生成的文件放到另外一个目录下)。
它的核心方法是doFilter(),处理办法是,每次从文件流中取一行数据,把它转换并转存到目录文件中。
处理文件的一个问题是换行符的问题,及最后一行没有换行符的处理(我为了省事,就强制在文件末尾添加一个换行符)。
代码见https://gitee.com/valuetodays/mvn-all/tree/master/resource-filter。
最后说一句,该功能可能并没有想像中的那么有用——功能也比较单一,无法和其它功能一起使用,但是相信走出这一步只是一个开端
。