JDK-8231434 : Add minBytesPerSequence() to java.nio.charsets.CharsetEncoder
  • Type: Enhancement
  • Component: core-libs
  • Sub-Component: java.nio.charsets
  • Priority: P4
  • Status: New
  • Resolution: Unresolved
  • OS: generic
  • CPU: generic
  • Submitted: 2019-09-24
  • Updated: 2021-03-01
Related Reports
Relates :  
Relates :  
Description
Charsets which are prefixed by a BOM need to include the size of it into maxBytesPerChar() to fulfil bug JDK-8230531.

The downside is, that the buffer, calculated from maxBytesPerChar(), is near twice in size than needed.

With this new API, the actually needed buffer size could be calculated with:

    int bufSize = encoder.minBytesPerSequence() + (encoder.maxBytesPerChar() - encoder.minBytesPerSequence()) * sequenceLength;
    // or
    int bufSize = encoder.maxBytesPerChar() * sequenceLength - encoder.minBytesPerSequence() * (sequenceLength - 1);