# Frage zu StringReader und InputStream



## takidoso (9. März 2005)

Halli und Hallo,
ich habe folgende Problematik: Ich benötige einen InputStream, der von einem einfachen String gefüttert werden soll.
Zuerst dachte ich so an die Klasse StringBufferInputStream, nur leider scheins diese mittlerweile veraltet (deprecated) zu sein. Der Hinweis in der Hilfe brachte mich dann auf die Klasse StringReader.
Schön und gut, aber wie macht man daraus einen InputStream   

Hat da jemand eine gute Idee?

mitbestem Dank im Voraus

Takidoso


----------



## Warhamster (9. März 2005)

Mir ist zwar noch nicht so ganz klar was du damit genau meinst aber ich nenne hier mal so die beiden Klassen InputStreamReader und OutputStreamWriter.
Vielleicht treffen die ja das was du evtl. haben willst.
Erläuter bitte dein Vorhaben ein wenig genauer.


----------



## Thomas Darimont (9. März 2005)

Hallo!

Sowas?

```
/*
 * Created on 09.03.2005@20:37:12
 *
 * TODO Explain me...
 */
package de.tutorials;

import java.io.ByteArrayInputStream;
import java.io.InputStream;

/**
 * @author Darimont
 *
 */
public class StringInputStreamExample {

	public static void main(String[] args) {
		String str = "abcdefghijkl\ndhjkhdsakds\ndhdsahdakjasd";
		InputStream is = new ByteArrayInputStream(str.getBytes());
		//...
	}
}
```

Gruß Tom


----------



## takidoso (10. März 2005)

Hi Tom,
vielen Dank, dies ist eine gute Lösung. Sie funktioniert und ist nicht depricated. 
In diesem Zusammenhang für mein näheres Verständnis gefragt, gibt es eigetnlich Möglichkeiten aus einem Reader einen InputStream zu machen? 

Takidoso


----------



## Kosch1 (14. März 2005)

Die von Thomas vorgeschlagene Lösung birgt aber ein Risiko, dass das Encoding zerstört wird.

getBytes() wandelt den String in Bytes basierend auf dem aktuell _lokal_ eingestellten Encoding um. Das muss nicht UTF-8 sein.
Falls dein Programm z.B. Textdateien schreibt oder liest können in der Form Umlaute zerstört werden.

Besser wäre darauf zu achten konsequent UTF-8 zu verwenden.
.getBytes("UTF-8") wäre angebracht. (Vorrausgesetzt der Inhalt des Streams ist UTF-8. Man muss also wissen, in welchem Encoding der Inhalt des Streams vorliegt.)


----------



## takidoso (9. März 2009)

Ich habe mal wieder ein solches Problem und fand unter anderem diesen Eintrag wieder.
unter anderem deswegen, da ich auf einem trhead stieß aus einem anderen Forum, welcher eine lösung beinhaltet, die vielleicht nicht schlecht sein könnte (ich werde sie demnähcst mal testen).
Guckst Du hier


----------

