2009-12-16 14 views

Antwort

1

Duplikat:

How to get SelectableChannel from an InputStream?

hmmm ... auf den zweiten Gedanken, für stdin es kann eine Lösung sein. Ich fand diese Referenz:

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

und insbesondere:

SystemInPipe.java (Klasse, die stdin als auswählbare Kanal kapselt)

+2

Ich weiß zu schätzen, was dieser Typ in SystemInPipe versucht, aber es ist immer noch nicht viel besser, als einen Daemon-Thread zu erzeugen, um ihn abzufragen. Problem ist, dass Sie diesen Thread (niemals) nicht unterbrechen können. – Justin

+0

Dies ist ein klassisches Beispiel dafür, warum auf StackOverflow dringend davon abgeraten wird, primär auf Links zu antworten. Der Link zu 'javafaq.nu' ist tot, also ist die Antwort wertlos. –

4

Ich weiß nicht, über eine SelectableChannel, aber Sie können konvertieren ein InputStream auf ein ReadableByteChannel mit

using java.nio.channels.Channels; 

... 

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

Sie c Es sollte ein Pipe und ein benutzerdefinierter Thread erstellt werden, der von der Standardeingabe gelesen und in die Pipe geschrieben wird.

Sobald Sie die Pipe haben, können Sie dann den Eingangskanal bekommen.

Verwandte Themen