![](/img/trans.png)
[英]Jenkins Read a Specific Line of a File in Jenkinsfile with Groovy
[英]Read a Specific Line of a File with Groovy
有人可以帮我逐行读取文件,
我有这段代码 - 但是这段代码会打印所有内容。 我需要逐行显示第5个(或特定的),因此我想要动态访问和打印任何行。 我需要打印文本文件的第5行。
//read from file
myFile = new File("C:\\Documents and Settings\\ABCEDFG\\Desktop\\soapUI\\params.txt")
printFileLine = { log.info "File line: " + it }
myFile.eachLine(0, printFileLine)
请帮助 - 提前感谢您的帮助!
^谢谢
这是邋and和浪费,但你可以做到
log.info "Line 5: " + myFile.readLines().get(4)
如果你不想在内存中使用它,你可以这样做:
String readLine( File f, int n ) {
String line = null
f.withReader { r ->
while( n-- > 0 && ( ( line = r.readLine() ) != null ) ) ;
}
line
}
然后,打印第5行:
File infile = new File("C:\\Documents and Settings\\ABCEDFG\\Desktop\\soapUI\\params.txt")
String line = readLine( infile, 5 )
println line
但是,如果您想以随机顺序访问方式读取多行,这可能会浪费,因为您每次都会从头开始调整文件。 但是,如果由于太大而无法将其加载到内存中,那么您无法做其他事情
你不能以任何优化的方式做到这一点。 这里有2个选项:
说明:
换行只是一个角色。 如果不读取所有字符,就无法告诉文件系统神奇地跳过文件到第N行。你需要实际找到第N行换行字符才能知道第N行的起始位置。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.