G
Guest
Gast
Hallo zusammen,
also ich hab da ein gravierendes problem. hatte erst eine woche ein seminar über java grundlagen und jetzt muss ich ein projekt machen bzw. ein programm schreiben. ich geb euch grad mal die aufgabenstellung zum besseren verständnis:
Verarbeitung von log Dateien: statistische Auswertungen, Filtering. Die log Dateien enthalten zu jedem Request den Returncode (des Servers), die Größe der Response (in Byte), die Antwortzeit (in Millisekunden) sowie die Größe des Request (in Byte).
Für eine log Datei sind nun folgende Werte zu berechnen bzw. auszugeben:
1.Minimum, Maximum und Durchschnitt der Größen von Response und Request sowie der Antwortzeiten.
2.Eine Tabelle mit den absoluten Häufigkeiten der Returncodes.
3.Zudem sollen alle Requests ausgegeben werden, die einen von x verschiedenen Returncode haben.
Die Ausgabe soll in eine Datei erfolgen.
so eine Zeile davon sieht dann so aus:
Host-IP User Datum und Zeit Http Request 1 2 3 4
Method URL Version
------------------------------------------------------------------------------------------------------------------------------------------ xxx.xxx.xxx.xx xxx - [26/Nov/2007:07:59:32 +0100] "POST /xxx/xx/xxxxxxx-xxxx HTTP/1.1" xxx xxx xxx xxx
1 = Returncode
2 = Response (byte)
3 = Time (ms)
4 = Request (byte)
So, natürlich hab ich mir schon gedanken darüber gemacht, wie ich das realisieren kann bzw. aufbaue:
- einlesen (Zeilenweise: das wollt ich mit nem BufferdReader machen)
- stückeln in die einzelen Infos (wollt ich mit StringTokenizer machen)
- Dann muss überprüft werden ob auf alle Infos in einer "Zeile" vorhanden sind, ansonsten muss halt ne
Fehlermeldung kommen. aber das ist ja nicht so schwer...
- Minimum, Maximum und Durchschnitt berechnen (wie ich das ungefähr mach weiss ich auch schon)
- Häufigkeit verschiedener Returncodes ausrechen und dann soll das in einer Tabelle nachher stehen (da hab ich
ehrlich gesagt noch keinen plan wie ich das machen soll..)
- Alle log-Dateien ausgeben die einen anderen Returncode als x haben (kann man ja mit if else machen, denk ma das
wird net so schwer)
- und zum schluss muss das halt alles in eine neue Datei geschrieben werden. (theoretisch auch kein problem, hab ich
schonmal gemacht)
Also, das is alles nur ein grundkonzept, klar das dann noch schleifen rein müssen und noch mehr dazu kommt.
Meine Frage oder mein Problem ist aber: Also in einer Datei stehen ja mehrere "Zeilen" oder Datensätze halt und lieg ich da richtig, das ich ja eigentlich das net alles immer zeilenweise machen kann, sondern erst alle einlesen muss, dann die berechnungen machen und nachher erst alles wieder in eine datei schreiben kann?
Also, müsst ich ja das alles mit arrays machen oder?
also ich hab da ein gravierendes problem. hatte erst eine woche ein seminar über java grundlagen und jetzt muss ich ein projekt machen bzw. ein programm schreiben. ich geb euch grad mal die aufgabenstellung zum besseren verständnis:
Verarbeitung von log Dateien: statistische Auswertungen, Filtering. Die log Dateien enthalten zu jedem Request den Returncode (des Servers), die Größe der Response (in Byte), die Antwortzeit (in Millisekunden) sowie die Größe des Request (in Byte).
Für eine log Datei sind nun folgende Werte zu berechnen bzw. auszugeben:
1.Minimum, Maximum und Durchschnitt der Größen von Response und Request sowie der Antwortzeiten.
2.Eine Tabelle mit den absoluten Häufigkeiten der Returncodes.
3.Zudem sollen alle Requests ausgegeben werden, die einen von x verschiedenen Returncode haben.
Die Ausgabe soll in eine Datei erfolgen.
so eine Zeile davon sieht dann so aus:
Host-IP User Datum und Zeit Http Request 1 2 3 4
Method URL Version
------------------------------------------------------------------------------------------------------------------------------------------ xxx.xxx.xxx.xx xxx - [26/Nov/2007:07:59:32 +0100] "POST /xxx/xx/xxxxxxx-xxxx HTTP/1.1" xxx xxx xxx xxx
1 = Returncode
2 = Response (byte)
3 = Time (ms)
4 = Request (byte)
So, natürlich hab ich mir schon gedanken darüber gemacht, wie ich das realisieren kann bzw. aufbaue:
- einlesen (Zeilenweise: das wollt ich mit nem BufferdReader machen)
- stückeln in die einzelen Infos (wollt ich mit StringTokenizer machen)
- Dann muss überprüft werden ob auf alle Infos in einer "Zeile" vorhanden sind, ansonsten muss halt ne
Fehlermeldung kommen. aber das ist ja nicht so schwer...
- Minimum, Maximum und Durchschnitt berechnen (wie ich das ungefähr mach weiss ich auch schon)
- Häufigkeit verschiedener Returncodes ausrechen und dann soll das in einer Tabelle nachher stehen (da hab ich
ehrlich gesagt noch keinen plan wie ich das machen soll..)
- Alle log-Dateien ausgeben die einen anderen Returncode als x haben (kann man ja mit if else machen, denk ma das
wird net so schwer)
- und zum schluss muss das halt alles in eine neue Datei geschrieben werden. (theoretisch auch kein problem, hab ich
schonmal gemacht)
Also, das is alles nur ein grundkonzept, klar das dann noch schleifen rein müssen und noch mehr dazu kommt.
Meine Frage oder mein Problem ist aber: Also in einer Datei stehen ja mehrere "Zeilen" oder Datensätze halt und lieg ich da richtig, das ich ja eigentlich das net alles immer zeilenweise machen kann, sondern erst alle einlesen muss, dann die berechnungen machen und nachher erst alles wieder in eine datei schreiben kann?
Also, müsst ich ja das alles mit arrays machen oder?