Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 要与System.in.read()一起使用的文件/流结束键盘组合是什么_Java_Eof_Console Input - Fatal编程技术网

Java 要与System.in.read()一起使用的文件/流结束键盘组合是什么

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中是一个错误 其中一个用户

道歉如果这个琐碎的问题已经得到了回答,我现在找不到。 使用以下Java普通代码(Windows 7和Eclipse Kepler)从IDE控制台读取行:

用户如何使值v等于-1?
(我尝试了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