从groovy readline返回结果

时间:2011-10-03 19:58:10

标签: groovy

我需要从文本文件中读取第N行,然后将该行分配给字符串。我已经有了N,我得到了一个循环。这需要是groovy:

伪代码

Def temp = readline(Linenumber);

2 个答案:

答案 0 :(得分:2)

Groovy将readLines()方法添加到java.io.File对象,该对象返回文件内容的List,每个列表条目一行。所以:

def lines = new File("myFile.txt").readLines()
def myLine = lines[N-1]

答案 1 :(得分:0)

如果您不想将整个文件读入内存,可以执行以下操作:

String readLineN( File f, int lineNo ) {
  f.withReader { r ->
    ret = ''
    lineNo.times {
      ret = r.readLine()
    }
    ret
  }
}

readLineN( new File( 'path.to.file' ), 11 )

将返回文件中的第11行(如果文件少于11行,则返回null