Announcement

Collapse
No announcement yet.

Bytestream in String wandeln

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Bytestream in String wandeln

    Hallo,

    versuche gerade ein kleines Programm zu schreiben, dass von meinem DSL-Router die IP Adresse abfrägt. Habe soweit Socketverbinung geöffnet und auch Login und "show ip" befehl abgesetzt. Bekomme auch das Ergebnis auf den Bildschirm.<br>
    <br>
    Möchte aber das ergebnis irgendwie in einem (String)Array speichern, um dann per substring die IP auszulesen.<br>
    <br>
    <b>Problem: Wie bekomme ich den Inputstream anständig in ein String gewandelt?</b><br>
    <br>
    Hier ist die Ausgabe auf dem Bildschirm:<br>
    <br>
    int anz;<br>
    byte[] c = new byte[100];<br>
    while ((anz = in.read(c)) != -1) {<br>
    System.out.write(c, 0, anz); // Bildschirmausgabe <br>
    }<br>

    Hat jemand einen Tipp?

  • #2
    Hi Stefan,

    versuchs mit BufferedReader.readLine().

    Gruss
    Marc

    Comment


    • #3
      Hi Stefan,<br>
      ich weiss nicht wie BufferedReader.readLine() funktionieren soll,<br>
      da BufferedReader auf einem Reader und nicht auf einem Stream<br>
      aufsetzt. <br>
      Es kann vielleicht mal Probleme mit der korrekten byte to char Wandlung geben,<br>
      aber ich verwende mit Erfolg folgendes Codestück:
      <pre>
      private static final int INITIAL_CAPACITY = 16384;
      public String streamToString(InputStream in) {
      StringBuffer sbuf = null;
      try {
      sbuf = new StringBuffer(in.available());
      int count;
      byte[] buf = new byte[INITIAL_CAPACITY];
      while ((count=in.read(buf)) != -1) {
      for (int i=0; i<count; i++) {
      sbuf.append((char)buf[i]);
      }
      }
      in.close();
      }
      catch (IOException e) {
      e.printStackTrace();
      return null;
      }
      return sbuf.toString();
      }
      </pre>
      Gruss Klau

      Comment


      • #4
        Vielen Dank Leute, <br>
        habe das Problem jetzt aber ganz einfach gelöst. Mein Problem war wohl hautpsächlich, dass ich mit der Rückgabe des Routers probleme hatte (Anfängerprobleme;-)
        <br>
        <br>
        int anz;<br>
        String text = "";<br>
        byte[] c = new byte[100];<br>
        while ((anz = in.read(c)) != -1 ) {<br>
        String a = new String(c);<br>
        text += a;<br>
        }<br>
        <br>
        Gruss,<br>
        Stefan<br&gt

        Comment

        Working...
        X