crazy4groovy
8/1/2012 - 2:41 PM

Keep only X lines from tail of text file, trim off the remainder

Keep only X lines from tail of text file, trim off the remainder

String fName = "X:\\file_cache.temp"
String bakupFileExt = ".bak.${(new Date().format('yyyyMMdd_hhmmss'))}" // if blank, file will be overwritten!

int keepLines = 100000

File oldF
List lines
try {
    oldF = new File(fName)
    lines = oldF.readLines()
    //println lines.size()
} 
catch (Exception e) { println "ERROR: Cannot open file $fName\n$e"; return }

int startI = lines.size() - keepLines
lines = lines[startI..-1]
//println lines.size()

if (bakupFileExt) {
    oldF.renameTo(fName+bakupFileExt)
}

File newF = new File(fName)
newF << lines.join('\r')

return "DONE"