Kampfgnom
Lt. Commander
- Registriert
- Jan. 2005
- Beiträge
- 1.075
Hi Leute,
ich bin gerade damit beschäftigt eine Kommandozeile in Java zu schreiben.
Diese soll Tab-Completion und auch eine Command-History enthalten. Nun stellt sich die Frage:
Wie lese ich von System.in zeichenweise ein?
Nun stellt sich das Problem, dass der InputStream die Zeichen anscheinend erst enthält, sobald der User 'Enter' drückt. Sprich: Es wird eigentlich doch wieder nur Zeilenweise eingelesen.
Joa, danke schonmal ;-)
mfg Kampfgnom
EDIT: Ich habe noch ein wenig genauer gegooglet, und bin zu dem Ergebnis gekommen, dass es schlicht und ergreifend nicht ohne weiteres möglich ist.
Interessante Seiten zu dem Thema sind vor allem:
http://www.darkcoding.net/software/non-blocking-console-io-is-not-possible/
http://stackoverflow.com/questions/...from-the-console-in-java-as-the-user-types-it
http://jline.sourceforge.net/
Ich mag Java.... *kotz*
ich bin gerade damit beschäftigt eine Kommandozeile in Java zu schreiben.
Diese soll Tab-Completion und auch eine Command-History enthalten. Nun stellt sich die Frage:
Wie lese ich von System.in zeichenweise ein?
Code:
public class Console implements Runnable {
InputStream in;
PrintStream out;
public Console(InputStream in, PrintStream out) {
this.in = in;
this.out = out;
}
public void run() {
while(true) {
out.print("\nPrompt> ");
char c = 0;
String command = "";
while(c != '\n') {
try {
c = (char) in.read();
} catch (IOException e) {
e.printStackTrace();
}
if(c == '\t') {
String completer = ConsoleHelperFacility.wordcompleter(command);
command += completer;
out.print(completer);
}
else {
out.write(c);
command += Character.toString(c);
}
}
}
}
}
Joa, danke schonmal ;-)
mfg Kampfgnom
EDIT: Ich habe noch ein wenig genauer gegooglet, und bin zu dem Ergebnis gekommen, dass es schlicht und ergreifend nicht ohne weiteres möglich ist.
Interessante Seiten zu dem Thema sind vor allem:
http://www.darkcoding.net/software/non-blocking-console-io-is-not-possible/
http://stackoverflow.com/questions/...from-the-console-in-java-as-the-user-types-it
http://jline.sourceforge.net/
Ich mag Java.... *kotz*
Zuletzt bearbeitet: