Kurzer Code-Schnippsel, um eine properties-Datei, die in einem Paket aus einer JAR-Datei steckt, einzulesen:
1 2 3 4 5 6 7 8 9 10 | Properties properties = new Properties(); try { InputStream is = this.getClass().getClassLoader().getResourceAsStream("com/oberprima/upload/client/configuration/config.properties"); properties.load(is); } catch (IOException ex) { System.out.println(ex.getLocalizedMessage()); } |
Um lange Zeichenketten (Strings) mit Werten zu füllen, bietet sich das Java MessageFormat an:
1 2 3 4 5 6 7 8 9 10 11 12 | public static void main(String[] args) throws Exception { String template = "My name is {0} {1}." + System.getProperty("line.separator", "\r\n") + "I am {2} years old."; Object[] values = new Object[] { "Benny", "Neugebauer", 24 }; String sentence = MessageFormat.format(template, values); System.out.println(sentence); } |
Die Ausgabe wäre hierfür:
My name is Benny Neugebauer.
I am 24 years old.
Möglich wäre auch dieser Einzeiler:
String sentence = String.format("My Name is %s %s.%sI am %d yars old.", "Benny", "Neugebauer", System.getProperty("line.separator"), 24);
Man könnte ebenso String Templates verwenden, müsste dann aber Bibliotheken wie etwa ANTLR (Five minute Introduction in ANTLR String Templates) verwenden. Natürlich kann man Strings auch verketten (konkatenieren), was aber wenig übersichtlich ist:
1 2 3 4 5 6 7 8 9 10 | String sentence = "My Name is " +"Benny" +" " +"Neugebauer" +"." +System.getProperty("line.separator") +"I am " +24 +" years old."; System.out.println(sentence); |
Hinsichtlich der Performanz, sind String Builder besser geeignet als die Konkatenation von Zeichenketten:
1 2 3 4 | StringBuilder sb = new StringBuilder("My name is ").append("Benny "); sb.append("Neugebauer").append(".").append(System.getProperty("line.separator")); sb.append("I am").append(24).append(" years old."); System.out.println(sb.toString()); |
Wie man an diesen kurzen Beispielen sieht gibt es viele Möglichkeiten, die zum Ergebnis führen. Mir gefällt derzeit das Message Format am besten. Das Message Format ist für den Standard Java-Logger (java.util.logging.Logger) sogar das von NetBeans 7 bevorzugte Format für Log-Nachrichten.
Apache Maven ist wundervoll. Aber wie bekommt man die eigene JAR-Bibliothek als Maven-Abhängigkeit in sein Projekt? Das geht einfacher als gedacht. Man muss dazu nur folgendes in die Konsole eingeben:
mvn install:install-file -Dfile=C:\path\to\my-lib-0.1.jar -DgroupId=com.mycompany.mylib -DartifactId=MyLibrary -Dversion=0.1 -Dpackaging=jar
Danach kann man in der pom.xml von seinem Maven-Projekt die eigene Bibliothek über folgenden Eintrag einhängen:
1 2 3 4 5 6 7 | ...
<dependency>
<groupId>com.mycompany.mylib</groupId>
<artifactId>MyLibrary</artifactId>
<version>0.1</version>
</dependency>
... |
Vielen Dank an How to include library manually into maven local repository?.
Dieses Beispiel zeigt, wie leicht sich das JBoss Netty Framework für einen eigenen Server einsetzen lässt. Wenn man das Beispiel startet und in einem Internetbrowser die Adresse …weiterlesenhttp://localhost:8080/ eingibt, dann wird im Browser das Wort “OKAY” angezeigt (nach HTTP/1.1-Standard) und serverseitig wird der Request des Clients (Browsers) auf der Konsole ausgegeben.
Ein leicht verständliches Code-Beispiel zum Einsatz von Java Management Extensions (JMX) mit Standard MBeans. …weiterlesen
Dieses grundlegende Beispiel zeigt, wie man eine Zeichenkette (String) in einem Puffer (Buffer), der ganze 5 Bytes aufnehmen kann, abspeichert. Das Einlesen erfolgt dabei über einen Strom (Stream):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | import java.io.ByteArrayInputStream; import java.io.InputStream; public static void main(String[] args) throws Exception { // Create a 5-Byte (40-Bit) buffer // Note: 5-Bytes are 5 characters in UTF-8 (8-Bit per character) int bufferSize = 5; byte[] buffer = new byte[bufferSize]; // Read bytes of a string into buffer String text = "Hello World!"; InputStream is = new ByteArrayInputStream(text.getBytes()); int bytesRead = is.read(buffer, 0, bufferSize); // Print result String bufferContent = new String(buffer); System.out.println("Bytes read: " + bytesRead); // Bytes read: 5 System.out.println("Result: " + bufferContent); // Result: Hello // Print result with a stream reader ByteArrayInputStream bais = new ByteArrayInputStream(buffer); BufferedReader br = new BufferedReader(new InputStreamReader(bais)); bufferContent = br.readLine(); System.out.println("Bytes read: " + bytesRead); // Bytes read: 5 System.out.println("Result: " + bufferContent); // Result: Hello } } |

0