RFR: 8354724: Methods in java.io.Reader to read all characters and all lines [v22]

Markus KARG duke at openjdk.org
Sat May 17 06:39:55 UTC 2025


On Fri, 16 May 2025 20:00:53 GMT, Roger Riggs <rriggs at openjdk.org> wrote:

>> This API is concerned with the "what" and not so much the "how."
>
> The purpose of Reader and subclasses is to normalize characters in various forms (char arrays, byte streams, char buffers, etc) into a coherent stream of characters and be able to read it incrementally.
> If the caller is going to use the entire CharSequence, as in the case of `Reader.of(cs)`, there is no reason to have a reader at all. Both String and CharSequence have more useful APIs than Reader for parsing.
> The motivation for reading all characters and reading lines came from use cases around input from sub-processes where the input is decoded from a byte stream, but that's not `Reader.of(cs).`

In many situations the programmer has no choice whether to use a reader or not, as the code he works in must fulfill a given specification (like JAX-RS), so he is getting a `Reader` *whether needed or not* -- it is not under *his* control. But as he wants to get *all* content, he likes to use this new method. Pretty valid and frequent use case in the enterprise world.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/24728#discussion_r2093982275


More information about the core-libs-dev mailing list