有人可以帮我逐行阅读文件,
我有这段代码 - 但是这段代码会打印所有内容。我需要逐行显示第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)
请帮助 - 提前感谢您的帮助!
^由于
答案 0 :(得分:8)
这是邋and和浪费,但你可以做到
log.info "Line 5: " + myFile.readLines().get(4)
答案 1 :(得分: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 :(得分:1)
你不能以任何优化的方式做到这一点。这里有2个选项:
说明:
换行符只是一个角色。如果没有读取所有字符,你就无法告诉文件系统神奇地跳过文件到第N行。你需要实际找到第N行换行符来知道第N行的开始位置。