Java: Какие неявные кодировки символов используются для файлов Sytem.out/in/err,?JAVA

Программисты JAVA общаются здесь
Anonymous
Java: Какие неявные кодировки символов используются для файлов Sytem.out/in/err,?

Сообщение Anonymous »

Первая задача: хочу прочитать из System.in в читалку.
Похоже, что это делается через

Код: Выделить всё

InputStreamReader cin = new InputStreamReader(System.in);
Ну, есть и другие конструкторы, включающие кодировку.
Неясно, какая там кодировка по умолчанию.
Насколько я понимаю, System.in — это просто поток байтов.
В то время как InputStreamReader читает символы.
Но откуда конструктор InputStream знает кодировку?
Нужно ли мне применять конкретную кодировку? если да, то какой из них или мне нужно его оставить?
Согласно вопросу, касающемуся System.out и System.err.
Оба кажутся потоками печати и, в частности, чтением байтов.

Код: Выделить всё

OutputStreamWriter out  = new OutputStreamWriter(System.out);
ОК, выбираю правильную кодировку или мне нужно использовать другой конструктор?
А как насчет System.err?
И какие кодировки????
Тот же вопрос, что и для PipedReader/Writer.
По крайней мере, они должны совпадать, верно?
Для StringWriter/Reader: та же кодировка как строка, т.е. utf8, верно?
Последний вопрос относительно файлов.
FileReader/Writer являются подклассами InputStreamReader/Writer.
Это кажется разумным, поскольку файлы представляют собой последовательность байтов.
Но в отличие от конструктора InputStreamReader/Writer,
который имеет конструкторы с кодировками, FileReader/Writer делает это нет.
откуда они могут знать кодировку файла???
Спасибо за разъяснения.

Вернуться в «JAVA»