Groovy 删除文本文件中的行
我正在Groovy中读取一个文本文件:Groovy 删除文本文件中的行,groovy,Groovy,我正在Groovy中读取一个文本文件: new File(testprojectDir + '/Testdata///' + filename).withReader('UTF-8') { reader -> def line while ((line = reader.readLine()) != null) { log.info "${line}" } } 文本文件生成如下所示: 123 456 789 我的问题是,我想删除刚才红色的那条线 示例:1
new File(testprojectDir + '/Testdata///' + filename).withReader('UTF-8') { reader ->
def line
while ((line = reader.readLine()) != null) {
log.info "${line}"
}
}
文本文件生成如下所示:
123
456
789
我的问题是,我想删除刚才红色的那条线
示例:123在变为红色后将被删除
然后继续到下一行,读取该行并删除该行保存相同的文本文件,直到该文件不再有行,这意味着文本文件为空,每删除一行
我该怎么做 您可以使用输出文件
def ofile = new File(outputFile)
new File(testprojectDir + '/Testdata///' + filename).withReader('UTF-8') { reader ->
def line
while ((line = reader.readLine()) != null && !line.contains("text i don't want")) {
log.info "${line}"
ofile.append(line)
}
}
如果要在适当的位置执行此操作,请执行以下操作:
def fileA = new File("src/file.txt")
List data = fileA.readLines()
fileA.text = ''
data.each { line ->
if (!line.contains("b")) {
log.info "${line}"
fileA.append(line) + "\n"
}
}
好-所以我不能保存到同一个文件?我必须创建一个新文件吗?您可以在读取所有带有readLines的行后,用filename.text=截断该文件,然后将这些行附加到该文件中,减去要忽略的内容。如果出现问题,数据将丢失。文件大小也很重要。感谢您更新的解决方案@ou_ryperd如果我正在查找字母b,您的解决方案会起作用,但它不会删除刚刚读取的包含123的行?我给了您一个工作示例。让它在你的数据上运行取决于你。还有一个问题@ou_ryperd-如果我只想阅读提到的文件中的第一行?我怎样才能做到?尝试使用List data=fileA.readLines.get1