Hallo Java Forum
Ich habe hier eine Problem mit einer NullPointer Exception. Ich weiß leider nicht was man da machen muß. Ich habe anbei den Quelltext meines Programms, der das Folgende tun soll:
1. Einlesen einer HTML Datei von einem beliebigen Ort aus.
2. Angabe des Speicherorts für die Ausgabe der korrigierten Daten.
3. Zeilenweises Einlesen und Prüfen auf Umlaute via vorprüfender Schleife
4. Zeilenweises Schreiben der veränderten Inhalte in eine andere HTML Datei.
Ich hoffe Ihr könnt mir sagen, wie ich das richtig machen muß.
Lieben Dank,
Semo
Was die Kommandozeile auswirft:
Der QUELLTEXT:
Ich habe hier eine Problem mit einer NullPointer Exception. Ich weiß leider nicht was man da machen muß. Ich habe anbei den Quelltext meines Programms, der das Folgende tun soll:
1. Einlesen einer HTML Datei von einem beliebigen Ort aus.
2. Angabe des Speicherorts für die Ausgabe der korrigierten Daten.
3. Zeilenweises Einlesen und Prüfen auf Umlaute via vorprüfender Schleife
4. Zeilenweises Schreiben der veränderten Inhalte in eine andere HTML Datei.
Ich hoffe Ihr könnt mir sagen, wie ich das richtig machen muß.
Lieben Dank,
Semo
Was die Kommandozeile auswirft:
Code:
init:
deps-jar:
compile-single:
run-single:
##############################################################
Programm zum Pruefen und Ersetzen von Umlauten in HTML-Dateien
##############################################################
Bitte geben Sie den kompletten Dateinamen der HTML Datei ein:
c:\vo.html
Danke.
Bitte geben Sie nun den vollstaendigen Namen der zu erzeugende Datei mit korrigierten Inhalt an:
c:\nach.html
c:\vo.html
c:\nach.html
Exception in thread "main" java.lang.NullPointerException
at java.io.Writer.write(Writer.java:140)
at le02_htmlconv.main(le02_htmlconv.java:65)
Java Result: 1
BUILD SUCCESSFUL (total time: 28 seconds)
Der QUELLTEXT:
Code:
/**
* Beschreibung
* @author Sebastain Morkisch
* @date 14.10.2008
* @version 0.9
*/
import java.io.*;
public class le02_htmlconv implements Serializable {
public static void main(String[] args) throws IOException {
System.out.println("##############################################################");
System.out.println("Programm zum Pruefen und Ersetzen von Umlauten in HTML-Dateien");
System.out.println("##############################################################");
System.out.println();
//Vorbereitung etwas aus der Konsole zu lesen
String DateinameEIN = "";
String DateinameAUS = "";
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//Einlesen des Dateipfades
System.out.println("Bitte geben Sie den kompletten Dateinamen der HTML Datei ein:");
DateinameEIN = br.readLine();
System.out.println("Danke.");
System.out.println("Bitte geben Sie nun den vollstaendigen Namen der zu erzeugende Datei mit korrigierten Inhalt an:");
DateinameAUS = br.readLine();
//Test auf Einleseschwierigkeiten
System.out.println();
System.out.println(DateinameEIN);
System.out.println();
System.out.println(DateinameAUS);
//Konstruktor zum Einlesen einer Datei, sowie Umwandlung des Bytestroms in Char-Data mit Unterstuetzung eines Puffers.
FileInputStream fiStream = new FileInputStream(DateinameEIN);
InputStreamReader iStreamR = new InputStreamReader(fiStream);
BufferedReader buffRead = new BufferedReader(iStreamR);
String inhalt = "";
//Zeilenweises Pruefen und Ersetzen des HTML Inhalts
while (true) {
inhalt = buffRead.readLine();
//Bei erreichen des Dateiendes, Abbruch des Einlesens und Pruefens
if (inhalt == null) break;
inhalt = inhalt.replace("ß", "&_szlig;"); //habe ein underscore gesetzt, damit das Forum das Zeichen nicht interpretiert
inhalt = inhalt.replace("ä", "&_auml;");
inhalt = inhalt.replace("Ä", "&_Auml;");
inhalt = inhalt.replace("ö", "&_ouml;;");
inhalt = inhalt.replace("Ö", "&_Ouml;");
inhalt = inhalt.replace("ü", "&_uuml;");
inhalt = inhalt.replace("Ü", "&_Uuml;");
}
//Konstruktion der Ausgabestroeme
FileOutputStream foStream = new FileOutputStream(DateinameEIN);
OutputStreamWriter oStreamW = new OutputStreamWriter(foStream);
BufferedWriter buffWrite = new BufferedWriter(oStreamW);
//Zeilenweises Schreiben ersetzter Inhalte
buffWrite.write(inhalt);
buffWrite.newLine();
//Schliessung aller offenen IOps
buffRead.close();
buffWrite.close();
}
}