Похоже, что это делается через
Код: Выделить всё
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 делает это нет.
откуда они могут знать кодировку файла???
Спасибо за разъяснения.