Hi Leute,
ist mein erster Beitrag also bitte nicht böse sein, falls es schon was zu dem Thema gibt. Hab auch schon gesucht und was gefunden, aber nicht hundertprozentig passend.
Hab grad irgendwie ne Blockade bzw. einen Denkfehler und komm nicht weiter.
Folgendes Szenario:
Ich möchte (erstmal zur Vereinfachung) ein Logfile (später mehrere) auslesen. Es sollen alle Datenfelder des Common Logfile-Formats (also IP-Adresse, Datum etc....) in ein eigenes Datenfeld einer Tabelle einer Datenbank geschrieben werden. Das auslesen funktioniert wunderbar. Hier mal mein bisheriger Code:
Ich schreibe jede Zeile in eine ArrayList und gehe anschließend mit dem StringTokenizer drüber um die einzelnen Datenfelder des Logfiles zu bekommen. Nun möchte ich jedes Datenfeld in die einer Datenbank speichern, bekomme das aber irgendwie nicht hin. In der Konsole wird alles so ausgegeben wie ich es möchte. Jedoch weiß ich nicht, wie ich auf die einzelnen Tokens zugreifen kann, um sie abzuspeichern.
Ich kann irgendwie nicht auf die Indizes der ArrayList zugreifen, um beispielsweise die IP-Adresse zu extrahieren und abzuspeichern (IP-Adressen sind im Logfile immer an erster Stelle, also hatt ich mir das ungefähr so gedacht: String ip = tokenList.get(0); o.ä.). Ich denke mal das funktioniert wegen der "dynamischen" Befüllung der Liste in der while-Schleife nicht.
Ich hoffe ich habe mein Problem deutlich ausgedrückt und bedanke mich für konstruktive Vorschläge. Steh gerade voll auf dem Schlauch .
ist mein erster Beitrag also bitte nicht böse sein, falls es schon was zu dem Thema gibt. Hab auch schon gesucht und was gefunden, aber nicht hundertprozentig passend.
Hab grad irgendwie ne Blockade bzw. einen Denkfehler und komm nicht weiter.
Folgendes Szenario:
Ich möchte (erstmal zur Vereinfachung) ein Logfile (später mehrere) auslesen. Es sollen alle Datenfelder des Common Logfile-Formats (also IP-Adresse, Datum etc....) in ein eigenes Datenfeld einer Tabelle einer Datenbank geschrieben werden. Das auslesen funktioniert wunderbar. Hier mal mein bisheriger Code:
Java:
public void readLogfile(String name) throws IOException {
FileInputStream fstream = new FileInputStream(name);
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String strLine;
//Read File Line By Line
while ((strLine = br.readLine()) != null) {
// System.out.println (strLine);
List<String> logList = new ArrayList<String>();
logList.add(strLine);
Iterator<String> it = logList.iterator();
while (it.hasNext()) {
System.out.println(it.next());
StringTokenizer tokenizer = new StringTokenizer(strLine);
while (tokenizer.hasMoreTokens()) {
tokenList = new ArrayList<String>();
tokenList.add(tokenizer.nextToken());
System.out.println(tokenList);
}
}
}
//Close the input stream
in.close();
}
Ich schreibe jede Zeile in eine ArrayList und gehe anschließend mit dem StringTokenizer drüber um die einzelnen Datenfelder des Logfiles zu bekommen. Nun möchte ich jedes Datenfeld in die einer Datenbank speichern, bekomme das aber irgendwie nicht hin. In der Konsole wird alles so ausgegeben wie ich es möchte. Jedoch weiß ich nicht, wie ich auf die einzelnen Tokens zugreifen kann, um sie abzuspeichern.
Ich kann irgendwie nicht auf die Indizes der ArrayList zugreifen, um beispielsweise die IP-Adresse zu extrahieren und abzuspeichern (IP-Adressen sind im Logfile immer an erster Stelle, also hatt ich mir das ungefähr so gedacht: String ip = tokenList.get(0); o.ä.). Ich denke mal das funktioniert wegen der "dynamischen" Befüllung der Liste in der while-Schleife nicht.
Ich hoffe ich habe mein Problem deutlich ausgedrückt und bedanke mich für konstruktive Vorschläge. Steh gerade voll auf dem Schlauch .