Dimitri Rettig: HTML-Dateien aus dem Internet auslesen

Hallo,

ich möchte Dateien aus dem Internet auslesen. Ich gehe wie folgt vor:

private void parse(String location)
  {
    URL url = null;
    // RefParseCallback ist meie eigene Klasse. Sie erweitert HTMLEditorKit.ParserCallback
    RefParserCallback callback = new RefParserCallback();
    InputStream in = null;
    InputStreamReader reader = null;

// die try-catch-Blöcke wurden übersichtshalber weggelassen.
    url = new URL(location);
    in = url.openStream();
    reader = new InputStreamReader(in);

new ParserDelegator().parse(reader, callback, false);
  }

Leider wird immer, wenn diese Methode aufgerufen wird, javax.swing.text.ChangedCharSetException geworfen. Ich habe mit

reader = new InputStreamReader(in, charset);

versucht, den Zeichensatz vorzugeben, wobei ich für charset verschiedene Zeichensätze eingesetzt habe. Nützt nix.

Ich hoffe auf baldige Hilfe, denn ich habe mir vorgenommen, sich nicht eher schlafen zu legen, bis das Problem beseitigt ist.

Mit freundlichen Grüßen
  Dimitri Rettig

P.S.: Ich gehe schon mal den Kaffee stellen ...

  1. Hallo,
    Kaffee noch heiß??

    ich möchte Dateien aus dem Internet auslesen. Ich gehe wie folgt vor:

    InputStreamReader reader = null;

    CharSet = null

    // die try-catch-Blöcke wurden übersichtshalber weggelassen.
        reader = new InputStreamReader(in);

    CharSet = default;
           ergo = changed -> Das Öffnen des Readers mit null ist der Fehler??

    new ParserDelegator().parse(reader, callback, false);
      }

    Leider wird immer, wenn diese Methode aufgerufen wird, javax.swing.text.ChangedCharSetException geworfen. Ich habe mit

    Kannst Du das mit den try - catch - Blöcken so gestakzeb, dass gleich
    InputStreamReader reader = new InputStreamReader(in);
    geöffnet wird?

    viele Grüße

    Axel

    1. Hallo,

      Kaffee noch heiß??

      wohl doch nicht ;-))

      Allerdings ist meine Lösung wohl doch nicht die richtige. Es funktionierte bei mir nur mit ignoriertem CharSet, warum auch immer.

      new ParserDelegator().parse(reader, callback, true);

      viele Grüße

      Axel

      1. Hallo,

        Kaffee noch heiß??
        wohl doch nicht ;-))

        ... ich finde, Kaffee und Java passen einfach nicht zusammen ...

        Allerdings ist meine Lösung wohl doch nicht die richtige. Es funktionierte bei mir nur mit ignoriertem CharSet, warum auch immer.

        Ay Caramba!

        new ParserDelegator().parse(reader, callback, true);

        Ich dachte, es sei genau anders: true für CharSet beachten, false für CharSet ignorieren.

        Vielen Dank!

        Mit freundlichen Grüßen
           Dimitri Rettig

        1. Hallo,

          Ay Caramba!

          new ParserDelegator().parse(reader, callback, true);

          Ich dachte, es sei genau anders: true für CharSet beachten, false für CharSet ignorieren.

          Ja, manchmal sind die Gedankengänge der Sun-Entwickler wohl ziemlich um die Ecke. Es war da wahrscheinlich auch schon ca. 2:00 Uhr.

          http://java.sun.com/j2se/1.3/docs/api/javax/swing/text/html/parser/ParserDelegator.html

          public void parse(Reader r,
                            HTMLEditorKit.ParserCallback cb,
                            boolean ignoreCharSet)

          ignoreCharSet = false = Beachte das CharSet!
          Die Negation der Negation.
          http://www.andy-junker.de/negation.html

          viele Grüße *g*

          Axel