On Tue, 7 May 2024 22:12:55 GMT, Pavel Rappo <pra...@openjdk.org> wrote:

>> src/java.base/share/classes/java/io/IO.java line 37:
>> 
>>> 35:  * is {@code null}; otherwise, the effect is as if a similarly-named 
>>> method
>>> 36:  * had been called on that console.
>>> 37:  *
>> 
>> Add a note here on encoding (character set), something like
>> 
>> 
>> Output from methods in this class uses the character set of the system 
>> console as specified by {@link Console#charset}.
>
> Seems redundant since we express `IO` methods in therms of those of `Console` 
> in the specification, no?

It's strictly redundant in the sense that, if one reads all the specifications 
and applies reasoning using the right facts, one could already reach that 
conclusion. However, I think it's a useful clarification, because if you're 
looking at `java.io.IO` and you ask what charset it uses, you might not know 
that you need to look at the `Console.charset` method. You might go looking on 
Console to find the answer, and you might or might not find that method. 
(Arguably Console's specs should be improved too since the charset is a global 
property of the Console instance and this should be mentioned in the class 
specs.)

Anyway Joe asked about Locales in the comments on the CSR 
[JDK-8331610](https://bugs.openjdk.org/browse/JDK-8331610) and while Locale 
isn't relevant, charset is, so it seems reasonable to mention it explicitly 
here.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/19112#discussion_r1593257656

Reply via email to