Java 默认为 BufferedReader 使用什么编码/字符集?

Joh*_*ood 2 java encoding bufferedreader

BufferedReader当我们创建一个新对象而不显式提供编码时,Java 默认使用什么编码/字符集?

例如:

try (final BufferedReader reader = new BufferedReader(new FileReader("my_file.txt"))) {
  reader.readLine(); // What encoding is used to read the file?
}
Run Code Online (Sandbox Code Playgroud)

Ste*_*n C 5

BufferedReader不做任何解码。它是另一个......的包装器Reader,它可能会或可能不会进行解码。

FileReader使用 JVM 的默认字符编码进行解码,如返回的Charset.defaultCharset()

javadoc 指出:

读取字符文件的便利类。此类的构造函数假定默认字符编码和默认字节缓冲区大小是适当的。要自己指定这些值,请InputStreamReader在 a 上构造 an FileInputStream