Evitar o uso do charset padrão quando o fluxo de saída for um PrintStream

Esta regra sinaliza os seguintes construtores de classe Java que utilizam um java.io.OutputStream e nenhum conjunto de caracteres:

As assinaturas do construtor que usam OutputStream sem os parâmetros Charset padrão para usar a codificação Charset.defaultCharset() . Isso causará um problema se o OutputStream a ser agrupado for um PrintStream, que mantém seu próprio charset, levando-o a ser ignorado. Isso é especialmente problemático quando PrintWriter agrupa System.out/err, pois com o JEP400 , o conjunto de caracteres padrão agora é UTF-8 enquanto a E/S padrão permanece em native.encoding.

Como parte dessa mudança, java.io.PrintStream agora define um método charset () para retornar o charset do fluxo de impressão.

Para obter mais informações, consulte JDK-8276970