Well the Reader
really wraps an InputStream
gives byte-level access to the data source. What the Reader
) does is to load a correct implementation of sun.io.ByteToCharConverter
based on the "file.encoding" System property. This property is initialized by the JVM by default after consulting the
native operating system settings. You can override that by
setting the "file.encoding" property using the
This affects all instances of the InputStreamReader
though. The InputStreamReader has a constructor which
you can use to pass the encoding on a per instance basis.
Here is the link to supported encodings:
This list varies based on JDK version.