Java-Programmierung

Guten Morgen meine Freunde,

durch mein Studium bin ich nun in den Kontakt mit Java gekommen und es hat mich wohl infiziert. Irgendwie mag ich die Sprache. Und mit Hilfe von JetBrains IntelliJ IDEA habe ich auch Spaß am Programmieren selbst, auch wenn ich mir manchmal einen Kollegen wünschte, der sich das programmierte einmal anschauen könnte.

Momentan programmiere ich an einer Art MoveCopy / FTP – Tool herum. Dateien sollen in der Regel von A nach B kopiert werden. Als solches erst einmal kein Problem. Allerdings gibt es hierbei ein paar kleine Schwierigkeiten:

  • eine while-Schleife bringt es nicht wenn dauernd Daten kopiert werden sollen
    • Wie kann ich denn ohne Schleife erstellte Daten kopieren
  • (Was ist mit mehreren Zielen?)

Dafür gibt es aber auch Lösungen:

  • Mit einem TimerTask können bestimmte Threads zu angegebenen Zeiten ausgeführt werden.
    • Und mit einem Dateisystem-Watcher lassen sich Pfade überwachen um Dateien die erstellt werden zu verschieben. (WatchService und WatchKey)
  • Mehrere Ziele sind kein Problem, diese können durch eine Schleife laufen. Wenn nur ein Wert darin vorhanden ist läuft diese auch nur einmal durch.

Meine Toolbox UML

Auch wenn sich das Programm vielleicht erst einmal klein anhört, ist es schon eine Menge Arbeit. Mein UML-Diagramm kann ich mir kaum anschauen. Aber bis das Programm mal zu 99,99% läuft und das macht was es soll, ist es noch ein weiter weg. Ich habe gerade erst wieder einen Fehler gefunden: Wenn viele Dateien in einem Ordner erstellt werden und der Watcher nach der ersten Datei die Threads startet kann es sein, dass ein paar Dateien übersprungen werden. Diese Vorgehensweise klappt so also nur bedingt.

Es gäbe nun also ein paar Lösungsmöglichkeiten.

A: Ich kombiniere den Watcher mit einem DirectoryListing. Wenn der Watcher sich meldet wird der Ordner durchsucht und alle gefundenen Daten (eventuell auch nach Extension) werden zum Ziel kopiert / verschoben.

B: Ich lasse den Watcher-Task, andere Tasks erstellen, damit der Watcher sich direkt wieder auf die Lauer legen kann.

Eine schwierige Entscheidung, die ich leider selbst treffen muss. Wie gesagt, schade, dass ich da keinen Kollegen habe der mir unter die Arme greifen könnte. Vielleicht finde ich aber ja noch andere Optionen. Mal sehen.

Ich programmiere dann mal weiter und suche meine Wege.

Man schreibt sich

PS.: Entschuldigt die später Meldung, hatte einiges um die Ohren 😉

Schreibe einen Kommentar