Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.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:将NIO与System.in一起使用_Java_Nio_System.in - Fatal编程技术网

Java:将NIO与System.in一起使用

Java:将NIO与System.in一起使用,java,nio,system.in,Java,Nio,System.in,可以将NIO与System.in一起使用吗 我想以某种方式将“stdin”视为一个可选频道。有人找到了这样做的方法吗 重复: 嗯。。。再想一想,对于stdin可能有一个解决方案。我发现这个参考: 特别是: (将stdin封装为可选通道的类)我不知道SelectableChannel,但您可以使用将InputStream转换为ReadableByteChannel using java.nio.channels.Channels; ... ReadableByteChannel in =

可以将NIO与System.in一起使用吗

我想以某种方式将“stdin”视为一个可选频道。有人找到了这样做的方法吗

重复:

嗯。。。再想一想,对于stdin可能有一个解决方案。我发现这个参考:

特别是:


(将stdin封装为可选通道的类)

我不知道
SelectableChannel
,但您可以使用将
InputStream
转换为
ReadableByteChannel

using java.nio.channels.Channels;

...

ReadableByteChannel in = Channels.newChannel(System.in);
您可以创建一个线程和一个自定义线程来读取标准输入并写入管道


一旦你有了
管道
,你就可以得到输入通道。

我很欣赏那个家伙在SystemInPipe中所做的一切,但这仍然不比产生一个守护进程线程来轮询它好多少。问题是你们不能中断那个线程(永远)。这是一个典型的例子,说明为什么在StackOverflow上强烈反对以链接为主的答案。指向
javafaq.nu
的链接已失效,因此答案一文不值。