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

时间:2009-12-16 15:13:53

标签: java nio system.in

是否可以将NIO与System.in一起使用?

我想以某种方式将'stdin'视为可选择的频道。有没有人找到办法做到这一点?

3 个答案:

答案 0 :(得分:3)

我不知道SelectableChannel,但您可以使用

InputStream转换为ReadableByteChannel
using java.nio.channels.Channels;

...

ReadableByteChannel in = Channels.newChannel(System.in);

答案 1 :(得分:1)

重复:

How to get SelectableChannel from an InputStream?

嗯......第二个想法,对于stdin可能有一个解决方案。我找到了这个参考:

http://www.javafaq.nu/java-example-code-346.html

,特别是:

SystemInPipe.java(将stdin封装为可选择的通道的类)

答案 2 :(得分:0)

你可以创建一个Pipe和一个自定义线程来读取标准输入并写入管道。

获得Pipe之后,您就可以获得输入频道。