Von plattformabhängigem Standard-Charset zu explizitem StandardCharsets
Files-Reader und -Writer mit StandardCharsets-Konstanten verwenden, statt sich auf das plattformabhängige Standard-Charset und fehleranfällige Zeichensatznamen zu verlassen.
try (Reader reader = new FileReader(path.toFile())) {
return readAll(reader);
}
try (BufferedReader reader = Files.newBufferedReader(
path, StandardCharsets.UTF_8)) {
return readAll(reader);
}
Portable Ergebnisse
Dieselben Bytes werden auf jeder Maschine identisch dekodiert.
Vordefinierte Konstante
StandardCharsets.UTF_8 kann keinen falsch geschriebenen Zeichensatznamen enthalten.
Moderne Datei-API
Path, Pufferung und Kodierung werden in einer Operation ausgedrückt.
Seit JDK 7 allgemein verfügbar (Juli 2011)
Reader- und Writer-Konstruktoren, die sich auf den Standard-Zeichensatz verlassen, machen das Dateiverhalten von der Laufzeitumgebung abhängig. Files.newBufferedReader() und newBufferedWriter() akzeptieren ein explizites Charset, während StandardCharsets garantierte Konstanten wie UTF_8 ohne String-Suche oder UnsupportedCharsetException bereitstellt.