问题
Is it possible to use NIO with System.in?
I would like to somehow treat 'stdin' as a selectable channel. Has anyone found a way to do this?
回答1:
duplicate:
How to get SelectableChannel from an InputStream?
hmmm... on second thought, for stdin there may be a solution. I found this reference:
http://www.javafaq.nu/java-example-code-346.html
and in particular:
SystemInPipe.java (class which encapsulates stdin as a selectable channel)
回答2:
I don't know about a SelectableChannel
, but you can convert an InputStream
to a ReadableByteChannel
with
using java.nio.channels.Channels;
...
ReadableByteChannel in = Channels.newChannel(System.in);
回答3:
You could create a Pipe and a custom thread to read from standard input and write to the pipe.
Once you have the Pipe
you can then get the input channel.
来源:https://stackoverflow.com/questions/1915262/java-use-nio-with-system-in