Groovy将列表写入文件

Pho*_*nix 14 groovy

File lstFile = new File(lstFileName).withWriter{out->
            archivedFiles.each {out.println it.name}
}
Run Code Online (Sandbox Code Playgroud)

archivedFiles是一个List对象..我收到的错误是:

Cannot cast object with class 'java.util.ArrayList' to class 'java.io.File'.
Run Code Online (Sandbox Code Playgroud)

我只对将列表中包含的文件名写入新创建的文件感兴趣

tim*_*tes 22

这是因为该withWriter块默认返回块中的最后一个东西(这是archivedFiles列表)

要做你想做的事,你需要做:

File lstFile = new File(lstFileName)
lstFile.withWriter{ out ->
  archivedFiles.each {out.println it.name}
}
Run Code Online (Sandbox Code Playgroud)

或者这也应该有效:

File lstFile = new File( lstFileName ).with { file ->
  file.withWriter{ out ->
    archivedFiles.each {out.println it.name}
  }
  file
}
Run Code Online (Sandbox Code Playgroud)