这里主要使用了StringBuilder来加入临时变量的方法来截取,对于小文件来说是非常适用的,如果是大文件,请使用RandomAccessFile来解决问题,下面是代码示例,有需要的同学可以参考
void logbackCopy(String component_name, String component_version, File logbackFile) { File logback = new File( "$repo/$component_name/$component_version/profiles/logback-spring.xml" ) if (matches( ".*process", component_name )) { logback.eachLine { line -> logbackFile.append( line + "\n" ) } } else { FileWriter writer = new FileWriter( logbackFile, true ) StringBuilder tmpfile = new StringBuilder( "" ) //删除最后一行内容 logbackFile.eachLine { if (it != "</configuration>") { tmpfile.append( it + "\n" ) } } logbackFile.write( tmpfile.toString() ) logback.eachLine { writer.write( it.toString() + "\n" ) } writer.write( "</configuration>" ) writer.close() } }