Ist es möglich, NIO mit System.in zu verwenden?Java: Verwenden Sie NIO mit System.in
Ich würde irgendwie 'Stdin' als wählbaren Kanal behandeln. Hat jemand einen Weg gefunden, dies zu tun?
Ist es möglich, NIO mit System.in zu verwenden?Java: Verwenden Sie NIO mit System.in
Ich würde irgendwie 'Stdin' als wählbaren Kanal behandeln. Hat jemand einen Weg gefunden, dies zu tun?
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)
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);
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.
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
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. –