Input/Output Sehr langen String in Datei schreiben

steman

Mitglied
Hi Leute,

ich habe ein kleines Problemchen ... und zwar lese ich den Quellcode einer URL aus und schreibe ihn in eine Textdatei. Dabei ist der gesamte HTML-Code in einem String, den ich noch trimme und (zur Übersichtlichkeit) einen Zeilenumbruch vor jedem HTML-Tag einfüge.

Das Problem ist nun aber, dass nicht der komplette String geschrieben wird. Die Konsole gibt ihn mir so aus, wie ich ihn haben will. Allerdings werden nur 98.304 Zeichen geschrieben und es wird eine java.lang.NullPointerException geworfen, in der Zeile 14 "s = s.trim();". Der Debugger gibt zudem aus:
ERROR: JDWP Unable to get JNI 1.2 environment, jvm->GetEnv() return code = -2
JDWP exit error AGENT_ERROR_NO_JNI_ENV(183): [../../../src/share/back/util.c:838]

Ich bin mir fast sicher, dass es Gestern noch alles geklappt, bevor ich am Code ein wenig was rumgebastelt (und wieder zurückgebaut) habe.

[Java] try {
URL url = new URL("http://www.test123.de");
Reader InStream = new InputStreamReader(url.openStream());
BufferedReader in = new BufferedReader(InStream);
BufferedWriter out = new BufferedWriter(new FileWriter("C:\\Users\\xyz\\workspace\\einlesen\\src\\test123_html.txt"));
String s = "";
String regex = "<";
String replacement = "\n<";
//int index_ELIX = -1;

//Datei schreiben
while(s != null) {
s = in.readLine();
s = s.trim();
s = s.replaceAll(regex, replacement);
System.out.println(s);
out.write(s);
}

in.close();
out.close();
}[/Java]


Wäre echt schick, wenn da jemand nen Rat für mich hätte.


Danke =)
 
Zuletzt bearbeitet:
S

SlaterB

Gast
Java:
 while(s != null) {
         s = in.readLine();
         // hier könnte s nun null sein, der Check hilft nicht

üblich ist

Java:
 while((s = in.readLine()) != null) {
         // hier kann s nun nicht null sein, der Check hilft

------

zur Anzahl Zeichen ist damit freilich nichts gesagt,
fehlt wirklich was? läßt sich direkt erkennen ob z.B. nur die letzte Zeile?
kann die Quelle auf anderem Wege komplett angeschaut werden, ist sie wirklich ein Text mit HTML-Tags?

die Fehlermeldung ist vielleicht nur Debugger-intern und für dein Programm unerheblich,
wenn du bisher zur NullPointerException kommst, dann gibt es wohl keinen anderen Abbruch
 

steman

Mitglied
Es funktioniert :)
Ich hatte schon irgendwie die Befürchtung, dass der da irgendwie versucht null zu trimmen, nur bin ich von dem Gedanken wieder abgerückt, als ich gesehen habe, dass er doch einen Teil in die Textdatei schreibt.

Und jetzt sehe ich auch, dass 40.000 Zeichen zu viel drin waren, bei meiner Lösung. Allerdings wurde nichts hinten angehangen, sondern scheinbar irgendwie weitere oder andere Teile der Homepage ausgelesen. Frag mich aber bloß nicht was und warum, auf mich wirkt das sehr mysteriös ^^

Vielen Dank, ich habe jetzt auf jeden Fall genau die Daten, die ich brauche :)
 

steman

Mitglied
Leider hat es sich doch nicht erledigt ...

Durch die Änderung in der while Schleife wird zwar ohne Fehler in die Datei geschrieben, allerdings sehe ich gerade, dass es 209.000 Zeichen sein sollten, es aber nur ein Viertel ist. Der Rest wird irgendwo "verschluckt", auch ohne trim und replace.

Wenn ich das alte Argument in der while Schleife lasse, dann wird allerdings alles (bis zur Exception), korrekt geschrieben

Übrigens habe ich beim Ausgeben der Dateien in der Konsole dasselbe Problem. Mit while( s != null ) ist alles da, mit in.readLine() darin allerdings nicht -.-
 
S

SlaterB

Gast
du hast nicht zufällig in der Schleife immer noch den readLine()-Befehl? zweimal readLine() wäre fatal,
Code?
 

Crian

Top Contributor
So auch?

Java:
            while (true) {
                s = in.readLine();
                if (null == s) {
                    break;
                }
                System.out.println("1:[" + s + "]");
                s = s.trim();
                s = s.replaceAll(regex, replacement);
                System.out.println("2:[" + s + "]");
                out.write(s);
            }
 
S

SlaterB

Gast
eine inhaltliche Auswertung (fehlen die letzten Zeilen, die ersten, fehlt jede zweite) hätte auch wieder Hinweis gegeben,
wie du immer in 10.000den Zeichen zählst aber keine konkrete Auswertung machst..

überhaupt erstmal mit einer Dummy-20 Zeilen-Seite testen
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D BigDecimal Ausgabe sehr lang. Java Basics - Anfänger-Themen 2
X Sehr schnelle agile Entwicklung Java Basics - Anfänger-Themen 1
M (Sehr großes Problem) Listen als static in anderen Klassen verwendet Java Basics - Anfänger-Themen 12
C Verarbeitung von sehr großen Dateien Java Basics - Anfänger-Themen 52
P Erste Schritte Console - Sehr komische Ausgabe! Java Basics - Anfänger-Themen 3
B sehr lange Srings in File schreiben Java Basics - Anfänger-Themen 4
Z Sehr simpler Taschenrechner - Hilfe! Java Basics - Anfänger-Themen 10
M Suche Hilfe bei sehr kleinen Quelltexten Java Basics - Anfänger-Themen 2
M Welche externen Bibliotheken sind in Java sehr zu empfehlen? Java Basics - Anfänger-Themen 4
C Einlesen in Array von Textdatei sehr langsam Java Basics - Anfänger-Themen 7
M sehr großes Byte Array Java Basics - Anfänger-Themen 3
R OutOfmemory Exception bei sehr großer Liste (Tomcat Webservice) Java Basics - Anfänger-Themen 4
H Sehr einfache Java-Programme Java Basics - Anfänger-Themen 24
Luk10 OOP Sehr allgemeine Schnittstelle Java Basics - Anfänger-Themen 19
R ArrayList sehr viel schneller als Array? Java Basics - Anfänger-Themen 2
R Sehr einfache möglichkeit ArrayList oder Array zu initialisieren? Java Basics - Anfänger-Themen 8
R Sehr kleine doubles nicht in Exponentialdarstellung ausgeben Java Basics - Anfänger-Themen 3
B ABspeichern eines sehr grossen negativen Werts Java Basics - Anfänger-Themen 6
Beckenbauer Eine anstehende (sehr simple) Applikation in UML darstellen (Klassendiagramm) Java Basics - Anfänger-Themen 20
N Name zu sehr ähnlich??? Java Basics - Anfänger-Themen 12
E Reguläre Ausdrücke mit sehr variablen Eigenschaften Java Basics - Anfänger-Themen 2
T Generic vom Generic: Zu sehr verschachtelt? Java Basics - Anfänger-Themen 6
Antoras Datei laden mit BufferedReader sehr langsam Java Basics - Anfänger-Themen 7
F Programm sehr langsam. Windows 7? Java Basics - Anfänger-Themen 23
S Eclipse .metadata ordner ist sehr gross! Java Basics - Anfänger-Themen 1
G Socket erstellen dauert sehr lange. Java Basics - Anfänger-Themen 4
D Sehr großer String lässt sich nicht bearbeiten Java Basics - Anfänger-Themen 7
G Verzeichnis auslesen mit sehr sehr vielen Bildern Java Basics - Anfänger-Themen 6
E Methode sehr langsam und funktioniert teilweise nicht Java Basics - Anfänger-Themen 3
S JFileChooser öffnet Unterverzeichnisse sehr langsam Java Basics - Anfänger-Themen 2
G Sehr eigenartige Datumsprobleme. Java Basics - Anfänger-Themen 2
I Schulprojekt !sehr wichtig! Java Basics - Anfänger-Themen 6
M sehr weit verschachtelte XML-datei mit jdom auslesen Java Basics - Anfänger-Themen 4
G g.drawLine arbeitet sehr ungenau. Java Basics - Anfänger-Themen 4
G sehr kleine Dezimalzahlen (BigDecimal) falsch angezeigt Java Basics - Anfänger-Themen 5
T Erste Schritte (SEHR mühsam); Grafiktest Java Basics - Anfänger-Themen 5
F Java Applikation ProjectX startet sehr langsam Java Basics - Anfänger-Themen 3
C FileInputStream sehr langsam Java Basics - Anfänger-Themen 5
B Spielereien mit bit wise Operatoren und langen Binärzahlen Java Basics - Anfänger-Themen 3
H Zu langen String aufteilen - bequeme Methode? Java Basics - Anfänger-Themen 14
F Erste Schritte java.util.Scanner: Beliebig langen Text per Paste in Console eingeben ? Java Basics - Anfänger-Themen 14
S Jede Reihenfolge einer zufällig langen Liste ausprobieren Java Basics - Anfänger-Themen 3
S Langen String umbrechen Java Basics - Anfänger-Themen 7
S Einen langen String beim Leerzeichen in zwei Strings zerlege Java Basics - Anfänger-Themen 3
richis-fragen String("AT") als StringObject-Variable deklarieren Java Basics - Anfänger-Themen 14
krgewb String mit Datumsangabe in Long umwandeln Java Basics - Anfänger-Themen 2
D String Groß/Kleinschreibung Ignorieren Java Basics - Anfänger-Themen 4
D Map<String, Integer> sortieren und der reinfolge nach die Glieder abfragen Java Basics - Anfänger-Themen 3
J Ähnlichen String in Liste finden Java Basics - Anfänger-Themen 6
Kartoffel_1 String transformation Java Basics - Anfänger-Themen 7
H String-Operation replace() - Zeichenkette verdoppeln Java Basics - Anfänger-Themen 2
K String analysieren Java Basics - Anfänger-Themen 27
Beowend String zu Date parsen Java Basics - Anfänger-Themen 1
Beowend String auf Satzzeichen überprüfen? Java Basics - Anfänger-Themen 6
H Liste nach String-Länge sortieren Java Basics - Anfänger-Themen 1
String in ArrayList umwandeln Java Basics - Anfänger-Themen 1
I Sass Compiler und String erhalten? Java Basics - Anfänger-Themen 7
Avalon String in Double bzw. Währung konvertieren Java Basics - Anfänger-Themen 6
T Methode akzeptiert String nicht Java Basics - Anfänger-Themen 18
F Arraylist<String>Ein Wort pro Zeile Java Basics - Anfänger-Themen 6
J Schlüsselworte Prüfen, ob ein bestimmtes, ganzes Wort in einem String enthalten ist. Java Basics - Anfänger-Themen 6
N String überprüfen Java Basics - Anfänger-Themen 3
E String zerlegen aus args Java Basics - Anfänger-Themen 1
M Long-Typ in String-Änderung führt zu keinem Ergebnis bei großer Zahl Java Basics - Anfänger-Themen 11
Ostkreuz String Exception Java Basics - Anfänger-Themen 8
W Items löschen aus String Array vom Custom Base Adapter Java Basics - Anfänger-Themen 2
MoxMorris Wie macht man String[] = String[] aus einer anderer Methode? Java Basics - Anfänger-Themen 18
J String Filter Java Basics - Anfänger-Themen 5
S String Array Buchstaben um einen gewissen Wert verschieben Java Basics - Anfänger-Themen 4
R Größter zusammenhängender Block gleicher Zeichen im String Java Basics - Anfänger-Themen 1
XWing Randomizer mit einem String Java Basics - Anfänger-Themen 2
D 2D Char Array into String Java Basics - Anfänger-Themen 2
H Cast von Float nach String klappt nicht Java Basics - Anfänger-Themen 12
I Zerlegen von String Java Basics - Anfänger-Themen 3
B Beliebiger String gegeben Suche Datum in String Java Basics - Anfänger-Themen 6
I String Java Basics - Anfänger-Themen 4
I API - zurückgegebener JSON String lesen und in Entity konvertieren Java Basics - Anfänger-Themen 2
W String einer Textdatei in einzelne Stringobjekte pro Zeile aufteilen Java Basics - Anfänger-Themen 14
belana wie am besten 2D Array von String to Integer Java Basics - Anfänger-Themen 18
J Java To String Methode, Array mit For-Schleife Java Basics - Anfänger-Themen 2
M Kommandozeilenparamter als EINEN String werten Java Basics - Anfänger-Themen 5
M RandomAccessFile int und String gleichzeitig in einer Datei Java Basics - Anfänger-Themen 49
M Prüfen on eine Zahl im String enthalten ist Java Basics - Anfänger-Themen 3
Distanz zwischen zwei Zeichenfolgen in einem String bestimmen Java Basics - Anfänger-Themen 5
Substring in einem String finden Java Basics - Anfänger-Themen 13
BeginnerJava String mit vorgegebener Länge und Buchstaben erzeugen/ mit Leerstellen Java Basics - Anfänger-Themen 8
I Eindeutiger String mit maximaler Anzahl an Zeichen Java Basics - Anfänger-Themen 11
H Interface Wieso "List<String> list = new ArrayList<>[…]" Java Basics - Anfänger-Themen 4
JavaBeginner22 Integer in String umwandeln Java Basics - Anfänger-Themen 7
HolyFUT JSON String in Java Object schreiben - Anführungszeichen rauskriegen? Java Basics - Anfänger-Themen 17
Fodoboo131 RegEx- Umwandlung von String in ausführbares Objekt/ Befehl Java Basics - Anfänger-Themen 9
HolyFUT Input/Output Leerzeichen aus String entfernen - klappt nicht! Java Basics - Anfänger-Themen 13
viktor1 Methoden Methode schreiben static void readText (String filename) {...} zu WordHistogramSample.java Java Basics - Anfänger-Themen 13
ravenz Schleife mit for über String Array „zahlen“und prüfen ob Wert „a“ oder „b“ oder „c“ entspricht (mittels || ) Java Basics - Anfänger-Themen 4
G Position einer unbekannten 3-stelligen-Zahl in einem String finden Java Basics - Anfänger-Themen 15
T String Array Fehler beim Index Java Basics - Anfänger-Themen 3
H Erste Schritte Nach einer Zahl n soll n Mal der String untereinander ausgegeben werden Java Basics - Anfänger-Themen 3
X Datentypen String.equals funktioniert nicht Java Basics - Anfänger-Themen 5
Alen123 String wiederholen mit Schleifen Java Basics - Anfänger-Themen 1
A String split funktioniert nicht, wenn mehr als 1 Ziffer vor dem Zeichen steht nach dem er trennen soll? Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben