如何指定在文件中保存字符串的位置

时间:2017-09-27 07:12:42

标签: file groovy

如何将字符串保存到文件以指定位置?我使用path << 'string'进行保存,但是在文件末尾给出它。在目标到xml(path)文件中有</databaseChangeLog>。我希望在该单词出现之前保存到文件。

有java解决方案click,但它是静态行。我的文件将是动态的,我不知道它会是什么行。

def add_to_version() {
   def path = new File('C:/groovy/version-1.xml')       
   def branchId = "Promt"
   def lineCount = 0

  def count = path.eachLine { line ->        
    if(line.contains('<include file="' + branchId + '/' + branchId + '.xml" ')){
        wordCount++             
    }else if(lineCount == 1 ){
        println "package is there"
    }
 }
  if(lineCount == 0){
    path << '<include file="' + branchId + '/' + branchId + '.xml" ' + 'relativeToChangelogFile="true"/>'    
  }
} 

上面的代码那样做: xml1      我想得到像这样的xml: enter image description here

1 个答案:

答案 0 :(得分:2)

您可以像这样使用xml解析器:

def add_to_version(String branchId) {
   def path = new File('C:/groovy/version-1.xml')       
   def xml = new XmlParser().parse(path)
   xml.appendNode("include", [
      file:"${branchId}/${branchId}.xml",
      relativeToChangelogFile:"true"
   ])
   groovy.xml.XmlUtil.serialize(xml, path.newOutputStream())
} 

此变体不会保留xml格式和注释

但xml有效