[Java] neueinlesen einer Datei

Black-Horse

Well-known member
ID: 82692
L
3 Mai 2006
326
18
Hallo

ich habe ine Frage, wie stelle ich es in Java am einfachsten an eine Datei, die ich schon geladen habe, bei einer Änderung durch ein anderes Programm sofort wieder enu einzulesen (ähnlich wie es textpad und andre Programme machen). Also woran erkenne ich, dass die Datei, die ich geladen habe von einem anderen Programm oder was auch immer verändert wurde?


Vielen Dank für eure Anregungen
 
Ich rate mal einfach so und würde darauf tippen das die Variable die du zum Lesen der Datei verwendest, dann kurzeitig eine Exception wirft. Also kannst du das so lösen, dass du einen Thead laufen lässt, der im Hintergrund immer versucht die Datei zu lesen und wenn der das nicht mehr kann, gibst du die Meldung aus. Das Ganze wird ressourcenschonender wenn du das nur dann prüfst, wenn dein Programmfenster wieder den Fokus hat.
 
ich wüsste jetzt selbst nicht das eine Klasse dann kann, aber gug dich mal um, ob du eine Klasse findest die einen dauerhaften Link auf eine Datei bilden kann? Weil da könnte dann ja eine Exception geworfen werden oder ähnliches.
 
Hm, also die meisten Modernen Betriebsysteme unterstützen irgend eine Form von Watcher.
Ist in Java aber anscheinend nicht möglich. Also entweder über JNI auf das Basis System zugreifen (z.bsp. inotify unter Linux) oder einfach Pollen.
 
icch habe mir auch schon überlegt in einem thread anzufangen die crc bzw die filesize zu checken, aber das ist in meinen augen ineffektiv, irgendwas muss es doch geben, man findet diesbezüglich aber auch cihts ....
 
Black-Horse schrieb:
icch habe mir auch schon überlegt in einem thread anzufangen die crc bzw die filesize zu checken, aber das ist in meinen augen ineffektiv, irgendwas muss es doch geben, man findet diesbezüglich aber auch cihts ....
Wobei ich eher das Änderungsdatum als die Dateigröße checken würde. Das lässt sich gut in einem zusätzlichen Thread erledigen, alle 1-2 sek. oder so fällt das bei der Performance nicht ins Gewicht.