Auf einem meiner RedHat-Linux-Server sind einige Geräte eingerichtet worden. /dev/ap und /dev/reuter. Dabei handelt es sich um AP- und Reuters-Nachrichten-Feeds. Auf der Unix-Befehlszeile kann ich "cat /dev/ap" eingeben, und es wird gewartet, bis eine Nachricht über den Feed eintrifft, und diese dann auf stdout ausgedruckt. Sobald es eine Pause im Stream gibt, wird cat beendet. Ich habe es mit "more" versucht und das gleiche Ergebnis erhalten, dasselbe mit less -f (komplette Nachricht, könnte Glück sein) und tail -f hatte in einer Stunde keine Ausgabe.
Ich weiß, dass es sich um Streams handelt, aber wenn ich versuche, einen Java BufferReader auf new Reader("/dev/ap") zu öffnen, erhalte ich keine Ausgabe. Ich verwende die folgende Ausführungsmethode:
public void run() {
String line = null;
while(true) {
try {
while((line = bsr.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
Ein paar Fragen:
1. Sind einige der Unix-Befehle auf das Öffnen von Datenströmen aus Dateien beschränkt, z. B. tail? 2. Was mache ich auf der Java-Seite falsch, dass ich die Ausgabe nicht erfassen kann? Falscher Stream-Typ, falscher Wrapper-Typ? Jim