On 06/11/2013 18:44, Xueming Shen wrote:
Hi,
The latest spec and implementation of java.util.Base64.getXXXEncoder()
is to add appropriate padding character(s) at the end of the output
encoded data stream, to follow the note explicitly specified in the
RFC
Implementations MUST include appropriate pad characters at the end
of encoded data unless the specification referring to this document
explicitly states otherwise.
However the RFE also mentions that
In some circumstances, the use of padding ("=") in base-encoded data
is not required or used...
Feedback so far also suggests that Base64.encoder without padding might
be desired in some real world use scenario.
So here is the webrev to add a new method to the Encoder class to return
a non-padding version.
http://cr.openjdk.java.net/~sherman/8026330/webrev
The API looks okay although some developers might not initially
recognize that an Encoder is immutable. In particularly, this statement
might not be clear:
"This instance of encoder is unaffected by this invocation."
What you would think about including an example in the javadoc so that
it's clear how to get an Encoder that doesn't emit padding?
Otherwise this looks good except that I wonder about needing to eagerly
create all 6 Encoders.
So are you trying to get this into 8 or are you thinking of holding this
to 9?
-Alan.