Ez a szabály a következő Java java.io.OutputStream osztálykonstruktorokat látja el jelzővel
és nincs karakterkészlet:
java.io.PrintStreamjava.io.PrintWriterjava.io.OutputStreamWriter
The constructor signatures that take OutputStream without Charset parameters default to use the Charset.defaultCharset() encoding.
Ez problémát okoz, ha a OutputStream egy PrintStream, amely saját karakterkészletet tartalmaz, és figyelmen kívül hagyja azt.
Ez különösen problematikus, amikor PrintWriter átalakítja a System.out/err-t, mivel a JEP400
esetén az alapértelmezett karakterkészlet most UTF-8 , míg a szabványos I/O marad a native.encodingelemben.
A módosítás részeként a java.io.PrintStream most megad egy charset () metódust a nyomtatási folyam karakterkészletének visszaadásához.
További információk: JDK-8276970