CoderResult | java.nio.charset | A CoderResult object specifies the results of a call to CharsetDecoder.decode( ) or CharsetEncoder.encode( ) . There are four possible reasons why a call to the decode( ) or encode( ) would return: -
If all the bytes have been decoded or all the characters have been encoded, and the input buffer is empty, then the return value is the constant object CoderResult.UNDERFLOW , indicating that coding stopped because there was no more data to code. Calling the isUnderflow( ) method on the returned object returns true and calling isError( ) returns false . This is a normal return value. -
If there is more data to be coded, but there is no more room in the output buffer to store the coded data, then the return value is the constant object CoderResult.OVERFLOW . Calling isOverflow( ) on the returned object returns true, and calling isError( ) returns false . This is a normal return value. -
If the input data was malformed , containing characters or bytes that are not legal for the charset, and the CharsetEncoder or CharsetDecoder has not specified that malformed input should be ignored or replaced , then the returned value is a CoderResult object whose isError( ) and isMalformed( ) methods both return true . The position of the input buffer is at the first malformed character or byte, and the length( ) method of the returned object specifies how many characters or bytes are malformed. -
If the input was well- formed , but contains characters or bytes that are "unmappable"that cannot be encoded or decoded in the specified charsetand if the CharsetEncoder or CharsetDecoder has not specified that unmappable characters should be ignored or replaced, then the returned value is a CoderResult object whose isError( ) and isUnmappable( ) methods both return true . The input buffer is positioned at the first unmappable character or byte, and the length( ) method of the CoderResult specifies the number of unmappable characters or bytes. public class CoderResult { // No Constructor // Public Constants public static final CoderResult OVERFLOW ; public static final CoderResult UNDERFLOW ; // Public Class Methods public static CoderResult malformedForLength (int length ); public static CoderResult unmappableForLength (int length ); // Public Instance Methods public boolean isError ( ); public boolean isMalformed ( ); public boolean isOverflow ( ); public boolean isUnderflow ( ); public boolean isUnmappable ( ); public int length ( ); public void throwException ( ) throws CharacterCodingException; // Public Methods Overriding Object public String toString ( ); } Returned By CharsetDecoder.{decode( ) , decodeLoop( ) , flush( ) , implFlush( )} , CharsetEncoder.{encode( ) , encodeLoop( ) , flush( ) , implFlush( )} |