tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
8
ZUGRIFFE
45616
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Registriert seit
    Feb 2004
    Beiträge
    592
    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.
     

  2. #2
    Registriert seit
    Oct 2003
    Beiträge
    1.706
    Dein Problemlösung steht doch schonin der API:

    Deprecated. This class does not properly convert characters into bytes. As of JDK 1.1, the preferred way to create a stream from a string is via the StringReader class.
    :

    http://java.sun.com/j2se/1.4.2/docs/...ingReader.html

    Gruß

    RedWing
     
    "I'm not deaf, I'm ignoring you"
    ----

  3. #3
    Registriert seit
    Feb 2004
    Beiträge
    592
    Danke, lesen kann ich selber.

    Dann gib mir doch bitte mal den Codeschnipsel zu meinem InputStream Object
     

  4. #4
    Registriert seit
    Oct 2003
    Beiträge
    1.706
    Ich weiß ja nicht weas du genau machen willst, aber der StringReader bietet dir die
    selbe Schnittstelle wie der StringBufferInputStream
    Code :
    1
    2
    3
    4
    5
    6
    
    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
     
    "I'm not deaf, I'm ignoring you"
    ----

  5. #5
    Registriert seit
    Feb 2004
    Beiträge
    592
    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.
     

  6. #6
    Registriert seit
    Oct 2003
    Beiträge
    1.706
    Sag das doch gleich

    Code :
    1
    2
    
    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
    Geändert von RedWing (07.07.05 um 14:55 Uhr)
     
    "I'm not deaf, I'm ignoring you"
    ----

  7. #7
    Registriert seit
    Oct 2003
    Beiträge
    1.706
    noch ne Möglichkeit:

    Code :
    1
    2
    
    String word = "Das ist mal ein Test";
    (new InputSource(new StringReader(word))).getByteStream();
    Dann hast du auch deinen InputStream
     
    "I'm not deaf, I'm ignoring you"
    ----

  8. #8
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Hallo!

    Schau mal hier:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    
     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
     
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

  9. #9
    Avatar von takidoso
    takidoso takidoso ist offline Mitglied Brillant
    Registriert seit
    Aug 2004
    Ort
    Kömigstein
    Beiträge
    911
    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_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
     

Ähnliche Themen

  1. Antworten: 7
    Letzter Beitrag: 23.11.09, 19:22
  2. Antworten: 2
    Letzter Beitrag: 28.01.08, 13:08
  3. aus einem String eine Variable erzeugen?
    Von Linz Erich im Forum VisualStudio & MFC
    Antworten: 7
    Letzter Beitrag: 03.12.07, 10:52
  4. Antworten: 4
    Letzter Beitrag: 03.07.07, 14:19
  5. In einem String einen Buchstaben ersetzen!
    Von mgd-one im Forum .NET Archiv
    Antworten: 3
    Letzter Beitrag: 31.10.03, 13:53