|
Auf vorliegender Seite möchte ich einige häufig benötigte Java−Schnipsel (Java−Snippets) vorstellen, die mir — hätte ich diese schnell zur Hand gehabt — etwas Entwicklungszeit erspart hätten. 1) Die vorliegenden Snippets sind für etwas versiertere Java−Entwickler, die mit unkommentiertem Java−Code keine größeren Schwierigkeiten haben, gedacht. |
|
Zunächst möchte ich einige kleinere Snippets vorstellen, die die darunterliegende Plattform (Betriebssystem) betreffen. Auch wenn Java eine plattformunabhängige Programmiersprache ist, muss man in seltenen Fällen die darunterliegende Plattform berücksichtigen (wie z. B. bei der Verwendung des Zeilenumbruches), damit die zu entwickelnde Java−Applikation auf jeder Plattform gleichermaßen funktioniert. |
Wie allseits bekannt, hängt der ASCII−Code eines Zeilenumbruchs vom zugrundeliegenden Betriebssystem ab. Hierzu kenne ich schon drei Varianten:
„line.separator”. Das folgende Snippet stellt eine Methode dar, die immer einen korrekten Zeilenumbruch liefert. |
|
Nicht nur der plattformabhängige Zeilenumbruch steht in den System-Properties, sondern auch andere nützliche Werte wie zum Beispiel der „file.separator”. Um sich einen Überblick zu verschaffen, testen Sie doch bitte folgendes Snippet. |
|
Die Stringmethode split(String regex) eignet sich besonders gut zur Deserialisierung von einfachen Listen. Wenn zum Beispiel ein kommaseparierter String (csv) vorliegt, hilft die Stringmethode split(). Mit diesem KnowHow und ein bisschen Entwurfsmusterwissen ist es Ihnen möglich, einen Iterator für CSV-Strings zu entwickeln. Die Entwicklung eines CSV−Datei−Scanners mit Hilfe von String.split() wäre ebenfalls eine nette Aufgabe. Im Folgenden werden zwei Methoden vorgestellt:
null muss dabei nicht geprüft werden. |
|
Das Snippet fileCopy implementiert das Kopieren einer beliebigen Datei. Die Eingabedatei from wird KB−weise in die Ausgabedatei to kopiert. Um die Ausnahme FileNotFoundException zu vermeiden, muss die Eingabedatei sowie das Verzeichnis der Ausgabedatei existieren. Die Rückgabe der Funktion stellt die Gesamtanzahl der kopierten Zeichen dar. Mein erster Versuch die Kopiermethode mit FileReader und FileWriter zu implementieren, schlug aufgrund von Encoding−Problemen fehl; Nicht jede Ausgabedatei war mit der Eingabedatei identisch. Encoding−Probleme gab es generell mit Binärdateien und so mancher RTF−Datei. Daher entschied ich mich für die FileStreams FileInputStream und FileOutputStream. |
|
Das Snippet dirCopy ist dazu da, das gegebene Verzeichnis from mit samt seinen Inhalten und Unterverzeichnissen rekursiv in das Ausgabeverzeichnis to zu kopieren. |
|
|
Java−Swing ist eine Komponentenbibliothek für die GUI (grafische Benutzerschnittstelle), die auf AWT aufbaut. Das Schöne bei Java−Swing ist, dass das Aussehen der grafischen Benutzeroberfläche (Look−and−Feel) ausgetauscht werden kann. |
|
Dieses Snippet kann eigentlich für jede Java−Swing−Anwendung verwendet werden. Es ermöglicht dem Anwender zur Laufzeit das Look−and−Feel des Programms über das Menü zu wecheln. Es werden die auf der Java-Plattform installierten LookAndFeel−Masken ermittelt und in einer Radiogruppe im Menü angezeigt. |
|
|
Wenn Sie zum Beispiel das ansprechende, vollständig vektorbasierte LookAndFeel Nimbus, welches erst mit Java 1.6 Update 12 eingeführt wurde, bevorzugen, besteht die Gefahr, dass Java dieses LookAndFeel (noch) nicht kennt. Mit dem vorliegenden Snippet können Sie eine LookAndFeel−Liste angeben, die solange von vorne nach hinten durchgegangen wird, bis ein LookAndFeel gesetzt werden konnte. |
|
|
Snippets für Entwurfsmuster dürfen selbstverständlich auch nicht fehlen. |
Ein oft verwendetes Entwurfsmuster ist das Singleton, welches einen privaten Konstruktor hat. Anstelle des Konstruktors verwendet man stets die statische Methode „getInstance()”. Ähnlich wie beim Konstruktor „new” gibt auch die Methode „getInstance()” immer eine Instanz der Klasse (hier: MySingleton) zurück, nur mit dem wesentlichen Unterschied, dass immer die selbe Instanz zurückgegeben wird. |
|
|
Für die Entwicklung des vorliegenden supergenerischen Besuchermusters hatte ich besonders viel Zeit investiert. Dass sich dieser Aufwand gelohnt hat, sehen Sie heute am Beispiel Tinyray−Visitors. |
|
|
|
|
Immer wenn es um Threads geht, habe ich immer die Befürchtung etwas falsch zu machen, so dass ich mir auch hierfür ein kleines, bewährtes Skeleton zurechtgelegt habe. |
|
| 1) | Ein Java-Schnipsel oder ein Java-Snippet ist ein kurzer Ausschnitt eines Java-Programms. |
Printversion www.stefan-baur.de / Java-Snippets zuletzt geändert am Dienstag, den 4. Mai 2010
Copyright (c) 2004-2010 Stefan K. Baur