小编ger*_*etd的帖子

如何在groovy中替换文本文件中的字符串/单词

您好我正在使用groovy 2.1.5并且我必须编写一个代码,该代码显示具有给定路径的目录的contens /文件,然后它对文件进行备份并从文件中替换单词/字符串.这是我用来尝试替换所选文件中的单词的代码

String contents = new File( '/geretd/resume.txt' ).getText( 'UTF-8' ) 
contents = contents.replaceAll( 'visa', 'viva' )
Run Code Online (Sandbox Code Playgroud)

这里也是我的完整代码,如果有人想以更有效的方式修改它,我会欣赏它,因为我正在学习.

def dir = new File('/geretd')
dir.eachFile { 
    if (it.isFile()) {
        println it.canonicalPath
    }
}

copy = { File src,File dest-> 

    def input = src.newDataInputStream()
    def output = dest.newDataOutputStream()

    output << input 

    input.close()
    output.close()
}

//File srcFile  = new File(args[0])
//File destFile = new File(args[1])

File srcFile  = new File('/geretd/resume.txt')
File destFile = new File('/geretd/resumebak.txt')
copy(srcFile,destFile)

x = " "
println x …
Run Code Online (Sandbox Code Playgroud)

groovy

30
推荐指数
5
解决办法
8万
查看次数

如何修复groovy.lang.MissingMethodException:没有方法的签名:

我试图在没有闭包的情况下使用此方法

def copyAndReplaceText(source, dest, targetText, replaceText){
    dest.write(source.text.replaceAll(targetText, replaceText))
}

def source = new File('C:/geretd/resumebak.txt') //Hello World
def dest = new File('C:/geretd/resume.txt') //blank

copyAndReplaceText(source, dest){
    it.replaceAll('Visa', 'Passport!!!!')
}
Run Code Online (Sandbox Code Playgroud)

但是当我运行它时,我收到以下错误:

groovy.lang.MissingMethodException: No signature of method: ConsoleScript3.copyAndReplaceText() is applicable for argument types: (java.io.File, java.io.File, ConsoleScript3$_run_closure1) values: [C:\geretd\resumebak.txt, C:\geretd\resume.txt, ...]
Possible solutions: copyAndReplaceText(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object)

at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:55)

at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:78)

at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:49)

at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133)

at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:149)
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

groovy

20
推荐指数
3
解决办法
18万
查看次数

除了''\n''之外,如何解决任何问题; 无论如何得到它

我的代码中有以下行

def genList = (args[]?.size() >=4)?args[3]: "
Run Code Online (Sandbox Code Playgroud)

当我运行我的整个代码时,我得到以下错误

期待除''\n'之外的任何事情; 无论如何得到它:9,列:113

在这里,我添加了整个代码,以便您可以看到我在做什么

def copyAndReplaceText(source, dest, targetText, replaceText){
    dest.write(source.text.replaceAll(targetText, replaceText))
}
def dire = new File(args[0])
def genList = (args[]?.size() >=4)?args[3]: " // check here if argument 4 is provided, and generate output if so
def outputList = ""
dire.eachFile { 
    if (it.isFile()) {
        println it.canonicalPath
        // TODO 1: copy source file to *.bak file
        copy = { File src,File dest-> 

            def input = src.newDataInputStream()
            def output = dest.newDataOutputStream()

            output << input …
Run Code Online (Sandbox Code Playgroud)

groovy

6
推荐指数
2
解决办法
2万
查看次数

标签 统计

groovy ×3