Watch Service erkennt Datei Änderung nicht

Otz

Bekanntes Mitglied
Hallo zusammen,

ich habe eine Text-Datei, in die von einem log4j SimpleSocketServer in unterschiedlichen Abständen verschiedene Nachrichten eingetragen werden.

Für diese Text-Datei habe ich ein Watcher Service implementiert, der mich über Änderungen informieren soll.
Leider funktioniert dies nur dann, wenn ich die Text-Datei anwähle oder aktualisiere.

Hier mal mein Quellcode:

Code:
...
Thread t2 = new Thread(new WatcherThread());
t2.start();
...

Code:
public class WatcherThread implements Runnable {

	@Override
	public void run() { 
WatchService watcher;
			
		try {
			watcher = FileSystems.getDefault().newWatchService();
			Path dir = Paths.get("log");
			dir.register(watcher, 
					StandardWatchEventKinds.ENTRY_CREATE,
					StandardWatchEventKinds.ENTRY_DELETE, 
					StandardWatchEventKinds.ENTRY_MODIFY );
			
			/*
	        ENTRY_CREATE: indicates that a directory or file is created.
	        ENTRY_DELETE: indicates that a directory or file is deleted.
	        ENTRY_MODIFY: indicates that a directory or file is modified.
	        OVERFLOW: indicates that the event might have been lost or discarded. 
	        This event is always implicitly registered so we don’t need to explicitly specify it in the register() method.
			*/
			
		
		while(true){
			
			WatchKey key;
		    try {
		        // wait for a key to be available
		        key = watcher.take();
		    } catch (InterruptedException ex) {
		        return;
		    }
		 
		    for (WatchEvent<?> event : key.pollEvents()) {
		        // get event type
		        WatchEvent.Kind<?> kind = event.kind();
		 
		        // get file name
		        @SuppressWarnings("unchecked")
		        WatchEvent<Path> ev = (WatchEvent<Path>) event;
		        Path fileName = ev.context();
		 
		        System.out.println(kind.name() + ": " + fileName);
		 
		        if (kind == StandardWatchEventKinds.OVERFLOW) {
		            continue;
		        } else if (kind == StandardWatchEventKinds.ENTRY_CREATE) {
		 
		            // process create event
		        	System.out.println("process create event");
		 
		        } else if (kind == StandardWatchEventKinds.ENTRY_DELETE) {
		 
		            // process delete event
		        	System.out.println("process delete event");
		 
		        } else if (kind == StandardWatchEventKinds.ENTRY_MODIFY) {
		        	System.out.println("process modify event");
		        }
		    }
		 
		    // IMPORTANT: The key must be reset after processed
		    boolean valid = key.reset();
		    if (!valid) {
		        break;
		    }
		}

		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
6 Best Practice Feedback zu Service / JUnit Tests Java Basics - Anfänger-Themen 3
I @Entity Klassen, Service Beans etc. aus einem Share Projekt beziehen? Java Basics - Anfänger-Themen 26
izoards Prunsrv - Windows Service - .bat file starten Java Basics - Anfänger-Themen 84
I Kommunikation "normaler PC" mit lokaler Software an "Cloud Service" und umgekehrt Java Basics - Anfänger-Themen 15
H Service/Task updateProgress Java Basics - Anfänger-Themen 36
S Mit Cloud Messaging Service starten Java Basics - Anfänger-Themen 2
S Android Service ferngesteuert starten Java Basics - Anfänger-Themen 5
T Windows service erstellen Java Basics - Anfänger-Themen 1
B Windows Service erstellen Java Basics - Anfänger-Themen 2
B Print Service Java Basics - Anfänger-Themen 5
J XML-Strukturen für REST-Service erstellen Java Basics - Anfänger-Themen 1
I AWS Event Notification Service Sample ausführen... Java Basics - Anfänger-Themen 7
G HttpUnit 503 Service Unavailabl Java Basics - Anfänger-Themen 2
C Servlets: doPost() etc. anstatt service() Java Basics - Anfänger-Themen 4
M Eine Methode die erkennt ob die ein gegebene zahl größer oder kleiner sein muss Java Basics - Anfänger-Themen 2
C60 Methoden Main-Methode erkennt meine Arrays nicht. Java Basics - Anfänger-Themen 7
I Programm erkennt nicht an das Array zurückgegeben wird trotz Initialisierung *einfach* Java Basics - Anfänger-Themen 9
B Nach eingefügtem Code erkennt Compiler keine Instanzvar und meldet SyntaxError Java Basics - Anfänger-Themen 2
O if Abfrage erkennt String nicht Java Basics - Anfänger-Themen 1
W Programm dass Palindrome erkennt Java Basics - Anfänger-Themen 6
A Wie erkennt die JVM welche class verwendet werden muss? Java Basics - Anfänger-Themen 3
Dimax Wie erkennt man dass der gesuchte am Zeilenanfang steht Java Basics - Anfänger-Themen 10
P if - Statement erkennt variable nicht. Java Basics - Anfänger-Themen 12
C Gui- Klasse erkennt Übergabeparameter aus Methode nicht Java Basics - Anfänger-Themen 4
A Erste Schritte Mein Programm erkennt die variable EinAus.readInt nicht Java Basics - Anfänger-Themen 15
J Programm was üer Runtime.getRuntime gestartet wird erkennt String Parameter nicht Java Basics - Anfänger-Themen 0
C Wie erkennt man Sonderzeichen im String? Java Basics - Anfänger-Themen 26
T Config: Projekt erkennt Javaversion nicht Java Basics - Anfänger-Themen 12
A Hat jemand einen ratschlag, wie java beim replaceALL eine geschweifte klammer erkennt ? Java Basics - Anfänger-Themen 5
E Input/Output Konsole erkennt meinen Buchstaben nicht Java Basics - Anfänger-Themen 12
D Java erkennt eine deklarierte Variable nicht Java Basics - Anfänger-Themen 2
K Erkennt repaint nicht Java Basics - Anfänger-Themen 1
E 2. JFrame erkennt 1. Frame Java Basics - Anfänger-Themen 6
O Erkennt Objekt nach dem Deserialisierung nicht Java Basics - Anfänger-Themen 5
J JDK installieren JCreator erkennt JDK nicht. "Failed to start the following executable" Java Basics - Anfänger-Themen 3
D Variablen Methode erkennt Variable nicht Java Basics - Anfänger-Themen 6
M JDK 1.6 installiert aber PC erkennt es nicht Java Basics - Anfänger-Themen 2
E ActionListener erkennt instanz nicht Java Basics - Anfänger-Themen 9
M java erkennt import-klassen nicht?! Java Basics - Anfänger-Themen 39
E Android: OnClickListener erkennt Buttons nicht Java Basics - Anfänger-Themen 7
L Warum erkennt java meine methode nicht? Java Basics - Anfänger-Themen 17
pun Junit Test erkennt Exception nicht.. Java Basics - Anfänger-Themen 14
H Funktion erkennt das return-statement nicht Java Basics - Anfänger-Themen 12
K Konsolenanwendung - Taschenrechner - erkennt Operanten nicht Java Basics - Anfänger-Themen 5
S Problem mit Eclipse: erkennt vorhandene Main-Methode nicht Java Basics - Anfänger-Themen 13
R JRE 1.5.0 Update 7 Install erkennt nicht Firefox/Netscape Java Basics - Anfänger-Themen 3
D Win98 erkennt keine java Befehle.Umgebungsvariablen falsch? Java Basics - Anfänger-Themen 7
R JBuilder erkennt keine getrennte Klassen. Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben