PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Weblog-Auswerter



snlilli
19-01-2007, 12:01
Hi all.

Ich habe ein Projekt namens Weblog-Auswerter welches ich nicht so ganz nachvollziehen kann.

Hier könnt ihr euch das Ding runterladen :
www.eschgarth.de/Weblog-Auswerter.zip

Sobald man ein Exemplar der Klasse Protokollauswerter erzeugt, wird im Terminalfenster angezeigt, dass das Lesen der Datei fehl schlug und nun Simulationsdatein ausgegeben werden.
Wenn man die Klasse dann auffordert die Log-Datei auszugeben (Methode)
werden 47 Zeilen voll mit Werten ausgegeben.

Ich frage mich nun woher der Auswerter diese Werte bloss nimmt.

Über hilfe würde ich mich sehr freuen ! :)

LG

Waxolunist
19-01-2007, 13:44
Hallo

Erstens denke ich nicht das die Methode in LogDateiLeser (Zeile 52 rum) geeignet ist um eine lokale Datei aufzurufen:


URL fileURL = getClass().getClassLoader().getResource(dateiname) ;

Ich habe die ersetzt durch


File f = new File("weblog.txt");

Und dann

BufferedReader logdatei = new BufferedReader(new FileReader(f));

Damit ist einmal der erste Fehler weg und er liest tatsächlich die Datei aus.

Zweitens: Im Fehlerfall werden im LogDateiLeser in der Methode Simulationsdaten erzeugt: erzeugeSimulationsdaten() heißt die Methode dazu.

Das ganze sieht so aus:

catch(IOException e) {
System.out.println("Lesen der Datei schlug fehl: " +
dateiname);
System.out.println("Es werden nun Simulationsdaten verwendet.");
erzeugeSimulationsdaten(_eintraege);
}

Ist zwar kein schönes Errorhandling, aber was solls.

mfg, christian

Viel wichtiger noch, wieso musste ich mir meine eigene Main-methode erzeugen:


public static void main(String args[]) {
ProtokollAuswerter pa = new ProtokollAuswerter();
pa.logdateiAusgeben();
pa.stundendatenAusgeben();
}

Das ist anstrengend. :)

Drittens: Trau dich ruhig Code auszugeben oder zu debuggen. In Eclipse ist debuggen sehr einfach, ansonsten verwende eben die primitvste Art des debuggens: Code lesen oder die zweitprimitivste: An allen möglichen Stellen Meldungen ausgeben:
System.out.println("1: hier");
Code
System.out.println("2: hier");
Code
System.out.println("3: hier - ifSchleife 1. Zweig");
Code
usw.....

mfg, christian