Hi,
hab mir mal einen Counter geschrieben, damit der Counter nicht zurückgesetzt, wenn der Tomcat oder die Applikation neu gestartet wird, Speicher ich ihn in einer Datei und lese ihn wieder aus. Das Auslesen funktioniert nicht ganz, wenn ich Datei mit dem alten Wert lösche und dann neu Anlege mit dem Neuen Wert. Wenn ich die Daten an die Datei hintendran hänge Funktionierts, aber er soll halt immer nur den Aktuellen Wert reinschreiben. Meine Protokollzeilen habe ich entfernt!
Die Zeilen die Rot markiert sind lesen die Werte aus.
hab mir mal einen Counter geschrieben, damit der Counter nicht zurückgesetzt, wenn der Tomcat oder die Applikation neu gestartet wird, Speicher ich ihn in einer Datei und lese ihn wieder aus. Das Auslesen funktioniert nicht ganz, wenn ich Datei mit dem alten Wert lösche und dann neu Anlege mit dem Neuen Wert. Wenn ich die Daten an die Datei hintendran hänge Funktionierts, aber er soll halt immer nur den Aktuellen Wert reinschreiben. Meine Protokollzeilen habe ich entfernt!
Die Zeilen die Rot markiert sind lesen die Werte aus.
Code:
public int globalCounter( String p_Datei_Counter, String p_Datei_Verzeichnis) throws IOException {
String Zeile_Einlesen = "";
int Rueckgabe = 0;
if ( p_Datei_Counter.equals("")) {
p_Datei_Counter = "Counter_Dump";
}
if ( p_Datei_Verzeichnis.equals("")) {
p_Datei_Verzeichnis = "../webapps/rwh";
}else{
p_Datei_Verzeichnis = "../webapps/rwh/" + p_Datei_Verzeichnis;
}
File Counter_Datei = new File(p_Datei_Verzeichnis + "/" + p_Datei_Counter);
try{
BufferedWriter Write_Counter_File = new BufferedWriter( new FileWriter(Counter_Datei));
if (!Counter_Datei.exists()){
new File(p_Datei_Verzeichnis + "/" + p_Datei_Counter).createNewFile();
Write_Counter_File.write("0");
Write_Counter_File.newLine();
Write_Counter_File.close();
}
if (!Counter_Datei.canRead()){
}
if (!Counter_Datei.canWrite()){
}
BufferedReader Read_Counter_File = new BufferedReader( new FileReader(Counter_Datei));
while ((Zeile_Einlesen = Read_Counter_File.readLine()) != null){
if (Zeile_Einlesen != null){
Rueckgabe = Integer.valueOf(Zeile_Einlesen).intValue();
}
}
Read_Counter_File.close();
Rueckgabe++;
String Schreibe = String.valueOf(Rueckgabe);
Write_Counter_File.write(Schreibe);
Write_Counter_File.newLine();
Write_Counter_File.close();
}catch (Exception e){
throw new IOException("Fehler in: " + e.getMessage());
}
return Rueckgabe;
}