Разница между InputStream и InputStreamReader при чтении многобайтовых символов

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

Поэтому нам следует использовать InputStreamReader , но мой вопрос:

Как InputStreamReader распознает символы?

] a - это один байт, а китайский символ - два байта. Считывает ли a как один байт и распознает другой символ как два байта, или для каждого символа в этом тексте InputStreamReader считывает его как два байта?

28
задан Simon MᶜKenzie 10 April 2013 в 00:56
поделиться