如何在IntelliJ IDEA scratch tab中使用Kotlin的readln()
IntelliJ IDEA Scratch标签页读取用户输入的问题
结论
IntelliJ IDEA的Scratch标签页默认不支持读取用户输入。
问题原因分析
你运行的readln()函数会阻塞程序等待用户输入,但Scratch的执行环境没有提供输入交互的界面入口,程序会一直处于等待状态,直到触发IDE内置的30秒超时限制,最终返回Couldn't get scratch execution result - stopped by timeout (30,000 ms)错误。
解决方法
方法1:使用普通项目文件运行
创建常规的Kotlin/Java项目文件,编写需要用户输入的代码后直接运行,IDE会打开标准控制台窗口,支持输入交互操作。
方法2:在Scratch中模拟输入
如果必须使用Scratch,可以通过重定向标准输入流来模拟用户输入,示例代码如下:
// 预先设置模拟输入的内容 val simulatedInput = "你的测试输入内容" System.setIn(simulatedInput.byteInputStream()) val something = readln() println(something)
运行这段Scratch代码时,程序会直接读取预先设置的模拟输入,不会出现阻塞超时的问题。
内容的提问来源于stack exchange,提问作者Marc Fearby
相关产品推荐
相关产品推荐

