Hallo,
ich lese via folgendem einfachen Konstrukt eine HTML-Datei von einer URL (übers Netzwerk ein):
Das klappt so auch erst mal, nur scheinen oft nicht alle 2096 chars eingelesen zu werden, obwohl es da weitaus mehr gibt. Im HTML-String sieht es dann halt entsprechend aus, dass dieser eben mit ungültigen Zeichen gespickt ist.
Das muss ja aber irgendeinen Grund haben, denn wie gesagt, die Dateien die ich einlese sind wesentlich größer als 2096 Bytes. Den BufferedReader erstelle ich bei jedem einlesen neu. Was mache ich da falsch? Muss man da noch irgendwas berücksichtigen bzw. kann es sein, dass das auch mit verschiedenen Zeichensätzen zu Problemen kommen kann?
P.S. Ich weiß dass man so eine Datei auch einfach Zeile für Zeile direkt in Strings einlesen kann, ich möchte aber stattdessen eben direkt eine gewisse Zahl an Bytes einlesen.
ich lese via folgendem einfachen Konstrukt eine HTML-Datei von einer URL (übers Netzwerk ein):
Java:
String url = "http://..."; //URL zur HTML-Datei
java.net.URL target = new java.net.URL(url);
BufferedReader reader = new BufferedReader(new InputStreamReader(new BufferedInputStream(target.openStream())));
char[] buffer = new char[2096]; //far enough for reading meta data
reader.read(buffer);
String htmlString = new String(buffer);
//Extrahiere bestimmte Informationen aus dem String....
Das klappt so auch erst mal, nur scheinen oft nicht alle 2096 chars eingelesen zu werden, obwohl es da weitaus mehr gibt. Im HTML-String sieht es dann halt entsprechend aus, dass dieser eben mit ungültigen Zeichen gespickt ist.
Das muss ja aber irgendeinen Grund haben, denn wie gesagt, die Dateien die ich einlese sind wesentlich größer als 2096 Bytes. Den BufferedReader erstelle ich bei jedem einlesen neu. Was mache ich da falsch? Muss man da noch irgendwas berücksichtigen bzw. kann es sein, dass das auch mit verschiedenen Zeichensätzen zu Problemen kommen kann?
P.S. Ich weiß dass man so eine Datei auch einfach Zeile für Zeile direkt in Strings einlesen kann, ich möchte aber stattdessen eben direkt eine gewisse Zahl an Bytes einlesen.
Zuletzt bearbeitet: