Hallo,
ich schreibe an einem kleinen Konverter. Lese Zeilenweise eine Datei ein und muß umformatiert in eine andere Datei schreiben. Zwar kann ich im main() die Datei beschreiben, würde aber einen Teil gerne als Unterfunktion einfügen. Doch ich weiß nicht, wie ich auf den Stream (heißt das so?) vom Unterprogramm aus zugreifen kann. Zeile 83 erzeugt den Fehler. Wäre für einen Tritt sehr dankbar
ich schreibe an einem kleinen Konverter. Lese Zeilenweise eine Datei ein und muß umformatiert in eine andere Datei schreiben. Zwar kann ich im main() die Datei beschreiben, würde aber einen Teil gerne als Unterfunktion einfügen. Doch ich weiß nicht, wie ich auf den Stream (heißt das so?) vom Unterprogramm aus zugreifen kann. Zeile 83 erzeugt den Fehler. Wäre für einen Tritt sehr dankbar
Java:
package map2html;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class map2html {
public static void main(String[] args) {
boolean S = false;
boolean E = false;
String Zeile = "";
String Ausgabezeile = "";
String Fehlerort = "";
String mapStringEnd = args[0].substring(args[0].length()-4);
String htmlStringEnd = args[1].substring(args[1].length()-5);
PrintWriter pWriter = null;
if (mapStringEnd.equals(".map"))
System.out.println("Map: " + args[0]);
else
System.out.println("Aufruf: java map2html GIMP.map FEAT.html");
if (htmlStringEnd.equals(".html"))
System.out.println("HTML: " + args[1]);
else
System.out.println("Aufruf: java map2html GIMP.map FEAT.html");
Scanner scan = null;
try {
scan = new Scanner(new File(args[0]));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
try {
pWriter = new PrintWriter(new BufferedWriter(new FileWriter(args[1])));
Kopf_schreiben();
} catch (IOException ioe) {
ioe.printStackTrace();
}
while (scan.hasNext()) {
Zeile = scan.nextLine();
int Start = Zeile.indexOf("coords");
int Ende = Zeile.indexOf("nohref");
if (Start != -1 && Ende != -1) {
Ausgabezeile = Zeile.substring(Start+8,Ende-2).trim();
S = true;
E = true;
Fehlerort = Zeile.substring(Zeile.indexOf("alt")+5,Zeile.length()-3);
}
else if (Start != -1 && Ende == -1) { //coords in Zeile, nohref nicht
Ausgabezeile = Zeile.substring(Start+8,Zeile.length()).trim();
S = true;
}
else if (Start == -1 && Ende == -1 && S) { //coords und nohref nicht in Zeile, S aber gesetzt
Ausgabezeile = Ausgabezeile + Zeile.substring(0,Zeile.length()).trim();
}
else if (Start == -1 && Ende != -1) { //coords nicht in Zeile, nohref aber schon
Ausgabezeile = Ausgabezeile + Zeile.substring(0,Ende-2).trim();
E = true;
Fehlerort = Zeile.substring(Zeile.indexOf("alt")+5,Zeile.length()-3);
}
if (S && E) {
System.out.println(Fehlerort + " -> " + Ausgabezeile + "\n");
pWriter.println(Fehlerort + " -> " + Ausgabezeile);
S = E = false;
Ausgabezeile = Fehlerort = "";
}
}
scan.close();
if (pWriter != null){
pWriter.flush();
pWriter.close();
}
}
public static void Kopf_schreiben(){
pWriter.println("Dies ist der Kopf");
}
}