Groovy控制台读取输入

Jam*_*mes 19 groovy input groovy-console

我刚刚开始学习Groovy,我正在GroovyConsole中进行实验.

有没有办法可以阅读用户输入?我试过下面的代码,但是我收到了一个错误.

BufferedReader br = new BufferedReader(new InputStreamReader(System.in))

print "Input:"

input = br.readLine()

println "You entered: $input"

这是我收到的错误:

Exception thrown
17-Apr-2012 02:52:39 org.codehaus.groovy.runtime.StackTraceUtils sanitize

WARNING: Sanitizing stacktrace:

java.io.IOException: Stream closed

有什么我需要导入的吗?

任何帮助都会很棒.

谢谢

Ren*_*ato 35

我来到这里试图找出从命令行读取用户输入的最简单方法...我在其他地方找到答案,将在此处发布以记录"真正的"Groovy方式,因为它仍然缺失:

def username = System.console().readLine 'What is your name?'
println "Hello $username"
Run Code Online (Sandbox Code Playgroud)

正如Larry Battle所说,如果使用groovy控制台,请确保查看输出的背景"黑色"窗口并输入输入.

编辑

Console不可用的环境中,例如从IDE运行,可能请改用:

println "What is your name?"
println "Your name is ${System.in.newReader().readLine()}"
Run Code Online (Sandbox Code Playgroud)


use*_*761 25

def readln = javax.swing.JOptionPane.&showInputDialog
def username = readln 'What is your name?'
println "Hello $username."
Run Code Online (Sandbox Code Playgroud)

  • 这非常酷而且简洁,如何获得“确定/取消”值?Nevemind,得到它..如果您单击取消,它将返回null。谢谢! (2认同)

Lar*_*tle 11

你的代码有效.

BufferedReader br = new BufferedReader(new InputStreamReader(System.in))
print "Input:"
def userInput = br.readLine()
println "You entered: $userInput"
Run Code Online (Sandbox Code Playgroud)

假设您在Windows上,唯一的问题是在groovyconsole之前启动的后台从控制台读取输入. 在此输入图像描述