InputStreamReader
обрабатывает кодировку.Символ не всегда вписывается в byte
(8 бит), а значение байта не всегда отображается на один и тот же символ, например, java char
использует 16 бит для кодирования символа, что позволяет представлять большее числоразные персонажи.
В зависимости от источника InputStream символ может быть закодирован с помощью ASCII (1 байт), UTF-8 (1 или более байт), UTF-16 (2 или 4 байта), utf-32 (4байт) или любая другая существующая кодировка.При наличии права Charset читатель может преобразовать необработанные байты в соответствующий символ Java.