Java 要与System.in.read()一起使用的文件/流结束键盘组合是什么
道歉如果这个琐碎的问题已经得到了回答,我现在找不到。 使用以下Java普通代码(Windows 7和Eclipse Kepler)从IDE控制台读取行: 用户如何使值v等于-1?Java 要与System.in.read()一起使用的文件/流结束键盘组合是什么,java,eof,console-input,Java,Eof,Console Input,道歉如果这个琐碎的问题已经得到了回答,我现在找不到。 使用以下Java普通代码(Windows 7和Eclipse Kepler)从IDE控制台读取行: 用户如何使值v等于-1? (我尝试了Ctrl+d-z-x-c-s-e和其他键,但没有可重复的行为,但循环被随机中断)使用control-d字符(按住control键的同时键入d)向从标准输入流读取的程序指示您已完成输入。control-D字符通常写为^Dcontrol+D应将EOF字符作为例外发送,但这在Eclipse中是一个错误 其中一个用户
(我尝试了Ctrl+d-z-x-c-s-e和其他键,但没有可重复的行为,但循环被随机中断)使用control-d字符(按住control键的同时键入d)向从标准输入流读取的程序指示您已完成输入。control-D字符通常写为^D
control
+D
应将EOF字符作为例外发送,但这在Eclipse中是一个错误
其中一个用户报告为
In Kepler 4.3 eclipse.buildId=4.3.0.M20130911-1000 on Linux the problem
still exists in the Java console. I found the following workaround:
If you leave the console to focus on another view, and then refocus on the console,
then Ctrl-D (EOF) works as expected.
跟随
在Windows中使用Eclipse时,
Control+Z
发送EOF字符。在Windows命令提示符下使用Groovy测试此操作时,ctrl-D不起作用,而ctrl-C起作用:
C:>groovy -e "while(v = System.in.read()){ println v }"
^D
4
13
10
-1
Terminate batch job (Y/N)? y
首先我点击ctrl-D,然后输入,结果是输出ctrl-D,4,13,10(最后三个是EOT,CR,LF,我猜,不确定在这种情况下^D是什么)。
然后我尝试了ctrl-C,并发送了输入的'-1'结尾。
因此,正如开发人员所说,这似乎取决于shell。假设这是一个intI,我相信这取决于控制台。我使用Windows,并在Eclipse中运行代码,如果这有帮助的话。非常感谢,太棒了!我必须使用Ctrl-Z(Windows)。更改视图,例如,我选择问题选项卡,然后选择控制台,允许CTRl-Z识别。。。5年后,新的2021-03版本仍然没有解决这个问题,这使得用于自动化标准的运行配置选项需要手动发送EOF字符。Ctrl-C对我不起作用,但Ctrl-Z可以(在Eclipse控制台中)。我有Mani提到的bug,需要更改聚焦视图以将此输入考虑在内。在Mac上是Cmd+D(⌘+D) 。
C:>groovy -e "while(v = System.in.read()){ println v }"
^D
4
13
10
-1
Terminate batch job (Y/N)? y