Aus einem String einen InputStream erzeugen?

Romsl

Erfahrenes Mitglied
Hi,

gibt es eine Möglichkeit aus einem String einen InputStream zu erzeugen.

Ich möchte einen String (wird von einer Drittanwendung geliefert und ist im Endeffekt ein XML Dokument) vom w3c DocumentBuilder parsen lassen um so den XML Baum aufzubauen.
Bis jetzt hole ich mir den String, schreib diesen in einen Datei und parse anschließend dann dieses erstellte File -> nicht effizient genug, deßhalb soll dieser String (falls es gehen sollte) gleich geparst werden.

Die Klasse StringBufferInputStream ist leider deprecated.

Bin offen für alle Vorschläge die mein Problem beheben oder verbessern.
 
Danke, lesen kann ich selber.

Dann gib mir doch bitte mal den Codeschnipsel zu meinem InputStream Object
 
Ich weiß ja nicht weas du genau machen willst, aber der StringReader bietet dir die
selbe Schnittstelle wie der StringBufferInputStream
Code:
String word = "Das ist mal ein Test";
StringReader input = new StringReader(word);
int zeich;
while((zeich = input.read()) != -1)
   //parsing the string byte for byte
input.close();

Gruß

RedWing
 
Hab doch oben beschrieben was ich möchte. Oder ist das nicht verständlich? Ich kann nun mal kein Reader von einem DocumentBuilder parsen lassen, sondern nur InputStreams.
 
Sag das doch gleich :)

Code:
String word = "Das ist mal ein Test";
Document doc = (new DocumentBuilder()).parse(new InputSource(new StringReader(word)));
müsste gehen, denk ich mal naja biss auf das DocumentBuilder abstract ist aber weißt schon die Methode die du brauchst ist wohl dann:
Document parse(InputSource is)
Gruß

RedWing
 
Zuletzt bearbeitet:
noch ne Möglichkeit:

Code:
String word = "Das ist mal ein Test";
(new InputSource(new StringReader(word))).getByteStream();
Dann hast du auch deinen InputStream
 
Hallo!

Schau mal hier:
Code:
 package de.tutorials;
 
 import java.io.ByteArrayInputStream;
 import java.io.InputStream;
 
 public class StringBasedInputStream {
 
 	/**
 	 * @param args
 	 */
 	public static void main(String[] args) {
 		// TODO Auto-generated method stub
 		String str ="gibt es eine Möglichkeit aus einem String einen InputStream zu erzeugen.";
 		InputStream bais = new ByteArrayInputStream(str.getBytes());
 	}
 
 }

Gruß Tom
 
Ich habe genau das selbe Problem gehabt und habe es mal wieder.
http://www.tutorials.de/tutorials195761.html
Beim Googlen fiel mir folgender Bug-Report auf, der mich ziemlich irritiert

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4094886

Also ehrlich gesagt weiß ich nicht was ich machen soll, ich denke ich bleibe bei Toms oder der veralteten Lösung und hoffe kein Problem zu bekommen.
ist schon drollig einen mittlerweile 7-8 Jahre alten Framework-Bug oder harmloser ausgedrückt Unzulänglichkeit nicht abzustellen.

Takidoso
 
Zurück