FileReader
- это InputStreamReader
, который использует FileInputStream
в качестве ввода, а InputStreamReader
использует кодировку по умолчанию при построении без указанной кодировки.
В исходном коде jdk10 используется Charset.defaultCharset()
:
public static StreamDecoder forInputStreamReader(InputStream in,
Object lock,
String charsetName)
throws UnsupportedEncodingException
{
String csn = charsetName;
if (csn == null)
csn = Charset.defaultCharset().name(); // get default charset
try {
if (Charset.isSupported(csn))
return new StreamDecoder(in, lock, Charset.forName(csn));
} catch (IllegalCharsetNameException x) { }
throw new UnsupportedEncodingException (csn);
}
который
Возвращает кодировку по умолчанию для этой виртуальной машины Java.
Кодировка по умолчанию определяется во время запуска виртуальной машины и
как правило, зависит от локали и кодировки базового
операционная система.
Вы можете распечатать его:
public static void main(String[] args) {
System.out.println(Charset.defaultCharset());
}