Google没有给予任何关于在groovy中获取文件最后一行的好结果,所以我觉得这个问题是必要的。
如何在groovy中获取文件的最后一行?
wvyml7n51#
获取所有行,然后获取最后一行:
def lines=new File("/home/user/somefile.txt").readLines() def lastline=lines.get(lines.size()-1)
或者,如果文件太大,
def last=new File('/home/user/somefile.txt').withReader { r-> r.eachLine {it} }
这和阿斯克的回答几乎是一样的。
mcdcgff02#
这是我最后得到的:
new File("/home/user/somefile.txt").eachLine { lastLine = it }
.eachLine遍历文本文件的每一行,lastLine被设置为当前迭代,直到eachLine完成遍历文件。很简单。
.eachLine
lastLine
eachLine
zour9fqk3#
如何在groovy中获取文件的最后一行?这取决于你对文件的了解。如果文件中的行是固定长度的,那么您可以查看文件大小,将其除以每行的长度,然后使用随机文件访问跳转到文件中的最后一行并读取它。这将比阅读整个文件更有效。如果你不知道行的长度,那么你可能不得不读取整个文件,并丢弃你读取的最后一行之前的所有内容。
vzgqcmou4#
def fruitString = '"banana","apple","orange"' def fruitArray = fruitString .split(',').collect{it as String} log.info(fruitArray[0]) //banana println(fruitArray[1]) //apple
4条答案
按热度按时间wvyml7n51#
获取所有行,然后获取最后一行:
或者,如果文件太大,
这和阿斯克的回答几乎是一样的。
mcdcgff02#
这是我最后得到的:
.eachLine
遍历文本文件的每一行,lastLine
被设置为当前迭代,直到eachLine
完成遍历文件。很简单。zour9fqk3#
如何在groovy中获取文件的最后一行?
这取决于你对文件的了解。如果文件中的行是固定长度的,那么您可以查看文件大小,将其除以每行的长度,然后使用随机文件访问跳转到文件中的最后一行并读取它。这将比阅读整个文件更有效。如果你不知道行的长度,那么你可能不得不读取整个文件,并丢弃你读取的最后一行之前的所有内容。
vzgqcmou4#