Обычно эти три утверждения выполняют одно и то же. И, конечно же, это так, если temp
содержит символ, который вы только что прочитали, используя Reader.read()
, и этот символ не был суррогатным персонажем UTF-16. (Если это делает «правильно» или нет, зависит от того, поддерживает ли кодировка символов по умолчанию символ, который вы пытаетесь писать.)
Если temp
содержит элемент кода Unicode, который был больше, чем 65535
, то первое утверждение будет в конечном итоге управляет кодовой точкой, но второй и третий операторы приведут к правильному представлению выводимого символа ... по модулю проблемы с набором символов по умолчанию.
Если temp
содержит суррогатный символ UTF-16, то я не совсем уверен, что произойдет. Я подозреваю, что это сработает. Однако буквальное чтение javadoc для PrintStream.print(char)
оставляет открытым то, что даже преобразование UTF-16 в UTF-8 может рассматривать один суррогатный символ как ошибку. Однако, это спорный вопрос, если ваш читатель не читал, как поток, который включал Unicode кодового больше 65535
.
Что вы хотите сделать? так что мы можем сказать вам, что это лучший способ –
Я просто хочу отобразить содержимое файла на экране – JayXon