Java: In eine HTML-Datei schreiben?
Ich möchte mit Java eine HTML-Datei schreiben.
Also, wenn man mein Programm öffnet, wird angezeigt: "Wie soll der Titel für die Seite sein?". Dann schreibt man einen Titel. Jetzt sollte in eine HTML-Datei geschrieben worden sein:
<title>derTitel</titel>
Aber in der Datei steht trotzdem nichts drin. Im Internet habe ich herausgefunden, dass es mit writer.newLine(); und writer.write und so geht.
Die betroffene Stelle:
BufferedWriter writer = new BufferedWriter(new FileWriter(webn, false)); //webn ist der String für den Dateiname.
command = zeile.replaceAll(".\((.)\).", "$1" + ".html");
try {
writer.write("<title>" + command + "</title>");
writer.newLine(); //im String command ist der Titel
} //Titel enthalten.
catch(IOException ioe) {
System.err.println(ioe);
}
zeile = br.readLine();
Und das ist die Stelle, an der der gewählte Dateiname festgelegt wird (klappt auch nicht; falls diese Datei schon existiert, wird sie überschrieben):
webn = zeile.replaceAll(".\((.)\).", "$1" + ".html");
File web = new File(webn);
BufferedWriter writer = new BufferedWriter(new FileWriter(webn, false));
try {
writer.write("<!DOCTYPE html>");
writer.newLine();
}
catch(IOException ioe) {
System.err.println(ioe);
}
zeile = br.readLine();
Die Variablen Zeile muss ich jezt eigentlich nicht erklären. Das ist nicht so wichtig. Aber ich verstehe nur nicht warum man (anscheinend) in Java nicht in HTML Dateien schreiben kann
1 Antwort
Du schließt den Writer gar nicht. Dies würde einen stream flush bewirken.
Hinter den Aufruf von newLine sollte also noch diese Zeile folgen:
writer.close();
Zudem würde ich dir empfehlen, mit try-with-resources zu arbeiten. So wird der Stream nach Verwendung automatisch geschlossen.
try (BufferedWriter writer = new BufferedWriter(new FileWriter(webn, false))) {
command = zeile.replaceAll(".\((.)\).", "$1" + ".html");
writer.write("<title>" + command + "</title>");
writer.newLine();
}
catch(IOException ex) {
System.err.println(ex);
}