HTML Swing Parser: Ergebnisse in Datei schreiben

B

biene85

Hallo zusammen,
ich hoffe ich habe das richtige Unterforum gewählt ;-).
Ich arbeite mit dem HTML Parser von Swing. Soweit funktioniert das auch schon ganz gut, d. h. mit System.out.println(data); bekomme ich die Ergebnisse angezeigt. Nun möchte ich die geparsten Zeilen in eine neue Datei schreiben. Allerdings schreibt es bei meinem Code leider nur die letzte Zeile in eine Datei. Weiß einer von euch, woran das liegt? Vielen Dank im voraus.
VG
Code:
import java.io.FileNotFoundException;

import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Reader;


import javax.swing.text.html.HTMLEditorKit;
import javax.swing.text.html.parser.ParserDelegator;


public class Parser2 {
	public void parser2() throws Exception {
		HTMLEditorKit.ParserCallback callback = new HTMLEditorKit.ParserCallback() {
			public void handleText(char[] data, int pos) {
				//System.out.println(data);
				try{
					BufferedWriter bw = new BufferedWriter (new FileWriter ("test.txt"));
					for (int i=0; i<data.length; i++){
						bw.write(data[i]);
						
					}
					bw.close();
				}
				catch(FileNotFoundException e) {}
				catch (IOException e){}
					
			}//handleText
		};//EditorKit.ParserCallback
		Reader reader = new FileReader("xy.htm");
		new ParserDelegator().parse(reader, callback, false);
	}//parser2

}//Parser2
 
Hallo,

das liegt wohl daran, dass du für jeden text in der HTML Datei einen neuen BufferedReader aufmachst, der das alte File überschreibt...
-> verwende einen Writer für die gesamte Aktion!

Gruß Tom
 
Hallo,
leider habe ich nicht wirklich viel Ahnung von Java. Inzwischen bin ich soweit das es mir nur die 1. Zeile in die Datei schreibt.
Wie würde den ein korrekter Code konkret aussehen?
VG
 

Neue Beiträge

Zurück