RFR: 8358533: Improve performance of java.io.Reader.readAllLines

Roger Riggs rriggs at openjdk.org
Wed Jun 18 00:56:35 UTC 2025


On Wed, 18 Jun 2025 00:04:37 GMT, Brian Burkhalter <bpb at openjdk.org> wrote:

> Replaces the implementation `readAllCharsAsString().lines().toList()` with reading into a temporary `char` array which is then processed to detect line terminators and copy non-terminating characters into strings which are added to the list.

src/java.base/share/classes/java/io/Reader.java line 469:

> 467:                     if (c == '\r' || c == '\n')
> 468:                         break;
> 469:                     term++;

It might be worth adding a test of unconventional sequences or \r and \n, including \r\r and \n\n, \r.
The current ReadAll test cover the conventional sequences on Linux and Windows.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/25863#discussion_r2153411639


More information about the core-libs-dev mailing list