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