NIO.2 Umstellung. Mein Fazit (nach einem Tag)
Um zu testen, wie sich die neue NIO.2-Bibliothek so in der Praxis macht, habe ich unsere tutego-Software auf NIO.2 gebracht. Als erstes habe ich File durch Path/Paths/Files-Aufrufe ersetzt. Dabei sind mir schon ein paar Stellen aufgefallen, die ich gerne noch verbessert sehen würde für >= Java 8.
- Von den File-Konstrukturen gibt es: File(File parent,
Stringchild) und File(Stringparent,Stringchild). Es ist praktisch, dass der erste Teil entweder File oderStringsein kann. Ich habe bei mir eine Menge von Aufrufen der Art new File(path, filename). Mal ist path einString, mal ein File (in der Regel File). Bei der Konvertierung zu Path wird es ungemütlich, denn es gibt nur get(Stringfirst,String… more) aber kein get(Path first,String… more). Also läuft es auf einpath.resove(child)raus, was ich aber nicht so schön finde wie einget(path, child). Aber alles Geschmacksache. - File wird öfter als Parametertyp akzeptiert als Path. So muss ich schreiben: PrintWriter out = new PrintWriter( testimonalsPath.toFile() ); Schöner wäre ein Konstruktur PrintWriter(Path).
- Die Methode
getFileName()liefert keinenString, sondern ein Path-Objekt nur mit dem Dateinamen. Daher führt folgendes nicht zum Ziel:path.getFileName().endsWith(".xml"). Undpath.getFileName().toString()``endsWith(".xml") ist etwas lang. Files.readAllBytes()ist zwar schön, aberFiles.readAllChars(Path,CharSet)wäre auch nett.
1 Kommentare
Chrstian ·
Hatte vergessen, dass es noch StandardCharsets seit Java 7 mit Konstanten gibt!
Die bisherigen Kommentare wurden aus WordPress übernommen. Neue Kommentare sind derzeit geschlossen.