Input/Output Neuen InputStream System.in setzen

socialcocer

Mitglied
Hallo,
habe mich gegenwärtig noch sehr wenig mit Streams befasst. So dachte ich mir, schreibst'e mal eben ne "Cmd" als Gui, die die Standard Streams in, out, err aus System nutzt.
So habe ich für die Ausgabe(out & err) eine JTextArea genommen und den PrintStream angepasst. Das klappt auch wunderbar.
Jedoch habe ich mit der Eingabe so meine Problemchen. Dafür habe ich ein JTextField vorgesehen. Aber meine irrsinnigen Konstruktionen führen nur zu Exceptions. Habe gerade auch keinen konkrete Idee welchen Ansatz man wählen sollte, stehe also völlig auf dem Schlauch.

Ich hoffe, dass mir der ein oder andere ein paar Tipps geben könnte.
 

XHelp

Top Contributor
System.in hat in der GUI ja auch nichts zu Suchen, deswegen weiß ich nicht so ganz, was du eigentlich willst.
Ohne Code kann man nur sagen: "Fehler beheben, dann klappt das schon"
 

socialcocer

Mitglied
Habe mir gedacht, eine Art Console zu progammieren, die die IDE Console ersetzt. So kann man mit einen Programm auch ohne IDE kommunizieren, da dann ja Methoden wie println() wegfallen. Die Ausgabe wird so auf meine TextArea umgeleitet und man muss das Programm nicht aus der CMD starten.

So sieht bisher meine Methode aus, die fürs Initialisieren und Setzen der Streams, zuständig ist:
Java:
	private void initStreams() {
		prin = new PrintStream(new OutputStream() {

			@Override
			public void write(int b) throws IOException {
				textArea.append((char) b +"");
			}
		});
		System.setOut(prin);
		System.setErr(prin);

	}
 
Zuletzt bearbeitet:
S

Spacerat

Gast
Also die Streams in System (out, err und in) sind fest mit der Konsole verbunden, da kann man nichts ändern. Ferner kann man eine Konsole ab JRE 1.6 (glaube ich) aus einer GUI heraus mit "System.console()" öffnen - ok... ich hab' des noch nicht hinbekommen.
Ansonsten bleibt dir nur eine eigene Konsolenimplementation der die Eingaben parsed und per "Runtime.getRuntime().exec()" an das Betribssystem weitergibt.
 

XHelp

Top Contributor
Also die Streams in System (out, err und in) sind fest mit der Konsole verbunden, da kann man nichts ändern.

Es gibt doch für jeden dieser Streams ein Setter, von daher kann man da schon jede Menge machen.
Aber Output-Stream und Input-Stream sind verschiedene Sachen, du kannst aber deinen eigenen Inputstream Schreiben, der einfach die Ausgabe des OS weiterleitet.
Writing Your Own Java I/O Stream Classes könnte für den Anfang helfen.
 
S

Spacerat

Gast
@XHelp: Und wie willst du die geänderten Streams wieder mit der Console verbinden? Prinzipell macht des nur Sinn, wenn die neuen Streamklassen die Ein- bzw. Ausgaben an die jeweiligen Original-Streams weitergereicht werden. Kommandos lassen sich darüber deswegen immer noch nicht ausführen.
 

XHelp

Top Contributor
Natürlich nicht. Auch ohne es umzuleiten oder was auch immer: nur weil man System.out.println("dir") macht, heißt es nicht, dass die Konsole das Verzeichnis auflistet.
Es ging ja um System.in ersetzen, so wie ich das verstanden habe. Aber der Plan war für mich eh von anfang an etwas zu komisch.
 
S

Spacerat

Gast
Gerade bei System.in ist das Problem, dass der Original-Strem bis zum Drücken der Eingabetaste blockiert. Daraus folgt, wenn du deine Eingaben mitverfolgen willst, muss dein Input-Stream bereits selber über einen "Parser" (ist an dieser Stelle eher der falsche Begriff ;)) verfügen, der auf Steuer- und Eingabetasten reagiert, während er Buchstaben und Zeichen schon mal in die Ausgabe (System.out) schreibt. Besser wäre es aber, wenn die Emulierte Konsole noch mal ein separater Output-Stream ist, an den die 3 eigenen System-Streams ihre Ausgaben weiter reichen, so kann man alle 3 z.B. separat farblich kennzeichnen.
 

XHelp

Top Contributor
Ja, aber dein ganzer Aufbau ergibt nur wenig Sinn. Wenn du eine GUI machen willst, dann mach auch eine GUI. Wenn du eine Konsolenanwendung machen willst, dann mach eine Konsolenanwendung. Wenn du Benutzereingaben aus der GUI haben willst, dann hast du eben ein JTextField dafür, wo du die Eingabe auch direkt ablesen kannst.
 
S

Spacerat

Gast
@XHelp: Wenn mich meine Sinne nicht täuschen möchte der TS so eine Art Konsole wie sie z.B. in Eclipse zu finden ist. Ein JTextfield mag sich dafür vllt. anbieten, so einfach isses dann aber auch nicht.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Daten aus einer HashMap aus einer DB speichern und mit neuen Werten vergleichen Java Basics - Anfänger-Themen 8
V Die Funktion des neuen Schlüsselworts in Java Java Basics - Anfänger-Themen 1
A JTextArea entfernen und durch neuen Text ersetzen Java Basics - Anfänger-Themen 8
L Ordner in neuen erstellten Ordner erstellen Java Basics - Anfänger-Themen 12
B Grundsatzfragen zu meinem neuen Projekt Einnahmen-Ausgaben App Java Basics - Anfänger-Themen 8
B Alle Links in einem Text suchen und ersetzen mit einem neuen Link Java Basics - Anfänger-Themen 18
N Wie lerne ich neuen Code zu benutzen? Java Basics - Anfänger-Themen 6
M Erste Schritte Neuen Frame nur einmal offen haben Java Basics - Anfänger-Themen 6
B MySQL starten / stoppen -> Stoppen erzeugt neuen Prozess Java Basics - Anfänger-Themen 0
W Klassen [GELÖST] Objekte während der Laufzeit mit neuen veränderten Werten beliebig oft initialisieren Java Basics - Anfänger-Themen 2
J Variablen String neuen Wert zuwesein Java Basics - Anfänger-Themen 6
J Welche Methoden laufen im neuen thread ?? Java Basics - Anfänger-Themen 9
O Java Erzeugung von neuen Objekten Java Basics - Anfänger-Themen 1
M Neuen Ordner im Überverzeichnis erstellen, und dadrin arbeiten Java Basics - Anfänger-Themen 4
S Wie bestehende Excel-Einträge mit neuen Vergleichen (mit Apache POI)? Java Basics - Anfänger-Themen 0
J Int Array und String in einer neuen Methoder übergeben Java Basics - Anfänger-Themen 7
1 Neuen Datentyp für rationale Zahlen als Klasse entwickeln Java Basics - Anfänger-Themen 20
T Alte Einträge im Array werden von neuen überschrieben Java Basics - Anfänger-Themen 5
kaoZ Android Programmierung / Erstellen einer neuen Instanz Java Basics - Anfänger-Themen 2
R Problem beim erstellen eines neuen Klassenobjekts Java Basics - Anfänger-Themen 2
T Threads Neuen Thread nicht aus main-Methode starten Java Basics - Anfänger-Themen 3
C Probleme mit neuen Objekten Java Basics - Anfänger-Themen 3
L warum werden nicht die neuen Point Daten der Zeile 25 beim ausprinten Zeile 28 übernommen ? Java Basics - Anfänger-Themen 8
J Klassen wie würde das in einer neuen class aussehen Java Basics - Anfänger-Themen 6
F erstellen einer neuen methode für das Zeichenfenster Java Basics - Anfänger-Themen 4
J Datentypen List - gleiche Einträge bei neuen Objekten Java Basics - Anfänger-Themen 31
J neuen jFrame öffnen per buttonklick Java Basics - Anfänger-Themen 3
R Button soll neuen Frame öffnen Java Basics - Anfänger-Themen 21
K Methode überschreiben - neuen Fehler Werfen? Java Basics - Anfänger-Themen 6
S Einen neuen String ohne Array oder List erzeugen??? Java Basics - Anfänger-Themen 13
E Keine neuen Beiträge Mit JavaMachine Datei vom Host in den Ram des Host laden. Java Basics - Anfänger-Themen 4
L Bei Click Neuen Tab Fenster öffnen Java Basics - Anfänger-Themen 8
L Textzeilen nach 2 Wörtern untersuchen wenn vorhanden Zeile in neuen Text ausgeben wenn nicht löschen Java Basics - Anfänger-Themen 10
R Array eines neuen Typen erstellen und befüllen Java Basics - Anfänger-Themen 2
I Integer neuen wert zuweisen Java Basics - Anfänger-Themen 2
I Color-Objekt neuen Wert zuweisen Java Basics - Anfänger-Themen 3
O Neuen Blackberry 8800 oder Curve gegen kleines Programm Java Basics - Anfänger-Themen 9
A Zeichen selektiv in einen neuen StringBuffer speichern Java Basics - Anfänger-Themen 2
A neuen Datentyp (Digit) definieren Java Basics - Anfänger-Themen 12
H wie spreche ich durch leerzeichen im string neuen index an Java Basics - Anfänger-Themen 10
V In einem Fenster ein neuen Fenster öffnen. Java Basics - Anfänger-Themen 4
P class in neuen Thread auslagern Java Basics - Anfänger-Themen 3
L Variable eines neuen Objekts belegen Java Basics - Anfänger-Themen 2
E Von einem JDialog einen neuen JDialog aufrufen Java Basics - Anfänger-Themen 10
D Probleme nach Einbindung einens neuen Packages Java Basics - Anfänger-Themen 5
Y Neuen Datentypen erstellen Java Basics - Anfänger-Themen 12
M deprecated / veraltet - Wo kann man die "Neuen" fi Java Basics - Anfänger-Themen 10
S brauche hilfe mit neuen Scanner Klasse Java Basics - Anfänger-Themen 17
G Probelm mit Runtime exec! Erstellen einer neuen Konsole. Java Basics - Anfänger-Themen 2
F Neuen Pfad anlegen Java Basics - Anfänger-Themen 3
K Warum wird hier nur etwas in eine txt Datei geschrieben und nicht in alle drei (InputStream/OutputStream/Reader/Writer) Java Basics - Anfänger-Themen 1
I Dateigröße von einem InputStream oder byte[] bekommen Java Basics - Anfänger-Themen 2
berserkerdq2 inputstream und bufferedwirter /outputstream und bufferedwriter Java Basics - Anfänger-Themen 9
T Bluetooth, Inputstream Java Basics - Anfänger-Themen 0
I InputStream beim zweiten Mal fehlerhaft Java Basics - Anfänger-Themen 10
B Inputstream in file schreiben? Java Basics - Anfänger-Themen 23
B InputStream / OutputStream / PipedOutputStream und managedExecutorService Java Basics - Anfänger-Themen 3
B java.io.OutputStream zu java.io.InputStream konvertieren Java Basics - Anfänger-Themen 18
B Hilfe bei InputStream To File Java Basics - Anfänger-Themen 22
B InputStream (PDF) nach Image (PNG / JPG) konvertieren? Java Basics - Anfänger-Themen 2
B Konvertieren: Outputstream zu Inputstream Java Basics - Anfänger-Themen 13
J Was genau macht die Methode close() im InputStream? Java Basics - Anfänger-Themen 5
E InputStream im Servlet wirft Exception Java Basics - Anfänger-Themen 5
D InputStream parsen und als Bilddatei abspeichern Java Basics - Anfänger-Themen 1
G Input/Output InputStream gibt nicht die Korrekten Werte aus Java Basics - Anfänger-Themen 10
T Datentypen InputStream to list of Int (or similar) Java Basics - Anfänger-Themen 4
P bytes aus einem InputStream zählen Java Basics - Anfänger-Themen 2
P InputStream eines Musik-Streams abspielen Java Basics - Anfänger-Themen 2
I Resize Image - Einlesen von InputStream Java Basics - Anfänger-Themen 3
T Input/Output Exception bei einem InputStream Java Basics - Anfänger-Themen 2
W ProcessBuilder InputStream in Array speichern Java Basics - Anfänger-Themen 3
K InputStream erstellen Java Basics - Anfänger-Themen 4
B Input/Output Data / Buffer / File Outstream Inputstream Java Basics - Anfänger-Themen 2
L Webservice soll InputStream übergeben bekommen Java Basics - Anfänger-Themen 7
S Eigener InputStream, Hilfe bei read-Methode Java Basics - Anfänger-Themen 6
C InputStream Java Basics - Anfänger-Themen 2
O Input/Output Fragen zum InputStream Java Basics - Anfänger-Themen 7
E Input/Output Relativer Bild-Pfad für InputStream Java Basics - Anfänger-Themen 5
G Frage zu InputStream? Java Basics - Anfänger-Themen 11
E Socket InputStream "terminiert" nicht Java Basics - Anfänger-Themen 4
E Input/Output Inputstream während der Laufzeit füllen Java Basics - Anfänger-Themen 2
A Frage zu Beispiel eines Dekorierers von InputStream Java Basics - Anfänger-Themen 4
B Input/Output InputStream (JSch) in OutputStream (Blob) überführen Java Basics - Anfänger-Themen 8
P Input/Output InputStream Listener? Java Basics - Anfänger-Themen 7
M Eigener InputStream will nicht mit BufferedReader Java Basics - Anfänger-Themen 3
A InputStream gibt nur jede 2te Zeile aus Java Basics - Anfänger-Themen 7
J InputStream FTP Java Basics - Anfänger-Themen 8
brunothg Inputstream zu Filechannel Java Basics - Anfänger-Themen 6
K StringWriter/String nach InputStream konvertieren Java Basics - Anfänger-Themen 3
Benji0815 Inputstream aus Konsole in JTextArea Java Basics - Anfänger-Themen 14
A Problem mit InputStream Java Basics - Anfänger-Themen 4
bastiann Kann man Inputstream nur auf ein Zeichen anwenden? Java Basics - Anfänger-Themen 5
U Inputstream.read()/readLine() blockiert immer Java Basics - Anfänger-Themen 18
S Problem mit url, inputStream und bytes beim Quellcode laden. Java Basics - Anfänger-Themen 6
G Kompletten InputStream der Kommandokonsole ausgeben Java Basics - Anfänger-Themen 8
G InputStream aufrufen, ändern und zurück geben Java Basics - Anfänger-Themen 2
W Zeichen ersetzen im InputStream Java Basics - Anfänger-Themen 3
N String vom InputStream in TextArea übertragen Java Basics - Anfänger-Themen 6
A Frage zu Puffergröße bei InputStream Java Basics - Anfänger-Themen 9
G in einem inputstream auf " " abfragen? Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben