Разница между InputStream
и InputStreamReader
заключается в том, что InputStream
читается как byte
, а InputStreamReader
читается как char
. Например, если текст в файле abc
, то оба они работают нормально. Но если текст a你们
, который состоит из a
и двух китайских иероглифов, то InputStream
не работает.
Итак, мы должны использовать InputStreamReader
, но мой вопрос:
Как InputStreamReader
распознает символы?
a
- один байт, но китайский символ - два байта. Читает ли он a
как один байт и распознает другие символы как два байта, или для каждого символа в этом тексте InputStreamReader
читает его как два байта?