Eigener InputStream, Hilfe bei read-Methode

socialcocer

Mitglied
Hallo,
ich würde gerne einen InputStream erzeugen, der aus einer JTextField liest. Jedoch habe ich noch nicht ganz verstanden, wie ich genau die Read-Methode überschreiben sollte.

Da ich noch nie so wirklich mit Stream programmiert habe (außer normales Nutzen der System-Streams), ist mir das Verhalten von Streams noch nicht ganz geläufig.

Natürlich habe ich vorab schon einen Blick in die API geworfen...
 
Zuletzt bearbeitet:
Opps, genau ich meine ein JTextField.

Das ist aber eigentlich relativ unwichtig, da ich, wie du schon gesagt hast, einfach an den Inhaltsstring kommen kann.

Was halt meine Frage war, wie ich in dem Falle einen String in einen Stream einlesen kann.
 
Um einen String in einen Stream zu "bekommen" benötigst du einen anderen Stream (OutputStream)!

Im Prinzip läuft es so ab, dass du eine Verbindung zwischen diesen herstellst, der OutputStream bekommt den zu schickenden String übergeben und leitet diesen an den InputStream auf der anderen Seite weiter, der dann diesen ausliest.
 
Um einen String in einen Stream zu "bekommen" benötigst du einen anderen Stream (OutputStream)!

Im Prinzip läuft es so ab, dass du eine Verbindung zwischen diesen herstellst, der OutputStream bekommt den zu schickenden String übergeben und leitet diesen an den InputStream auf der anderen Seite weiter, der dann diesen ausliest.

Kann man, muss man aber nicht.

Warum nicht einfach
Java:
new ByteArrayInputStream(meinJTextField.getText().getBytes());
verwenden anstatt eines eigenen Streams?
 
Danke an den Vorposter
Java:
InputStream in = new InputStream() {
			String s = "hallo";
			int stelle = 0;
			@Override
			public int read() throws IOException {
				if(stelle >= s.length())return -1;
				return s.charAt(stelle++);
			}
	};
Hatte mir jetzt sowas zsm gebastelt, was jedoch nicht wirklich der Idee eines Streams entsprechen wird.
 
Danke an den Vorposter
Java:
InputStream in = new InputStream() {
			String s = "hallo";
			int stelle = 0;
			@Override
			public int read() throws IOException {
				if(stelle >= s.length())return -1;
				return s.charAt(stelle++);
			}
	};
Hatte mir jetzt sowas zsm gebastelt, was jedoch nicht wirklich der Idee eines Streams entsprechen wird.

Zumal es noch falsch ist, da du so auch Werte außerhalb des Bereichs [-1,255] zurück geben würdest, denn du gibst einfach den Unicode des Zeichens zurück.
 

Zurück
Oben