【发布时间】:2009-12-16 15:13:53
【问题描述】:
是否可以将 NIO 与 System.in 一起使用?
我想以某种方式将“stdin”视为可选频道。有没有人找到办法做到这一点?
【问题讨论】:
是否可以将 NIO 与 System.in 一起使用?
我想以某种方式将“stdin”视为可选频道。有没有人找到办法做到这一点?
【问题讨论】:
我不知道SelectableChannel,但您可以将InputStream 转换为ReadableByteChannel
using java.nio.channels.Channels;
...
ReadableByteChannel in = Channels.newChannel(System.in);
【讨论】:
您可以创建一个Pipe 和一个自定义线程来读取标准输入并写入管道。
一旦你有了Pipe,你就可以得到输入通道。
【讨论】:
重复:
How to get SelectableChannel from an InputStream?
hmmm...再想一想,对于标准输入,可能有一个解决方案。我找到了这个参考:
http://www.javafaq.nu/java-example-code-346.html
特别是:
SystemInPipe.java(将标准输入封装为可选通道的类)
【讨论】:
javafaq.nu 的链接已失效,因此答案毫无价值。