Module java.base
Package java.nio.charset

Class CoderResult

java.lang.Object
java.nio.charset.CoderResult

public class CoderResult extends Object
编码器结果状态的描述。

字符集编码器,即解码器或编码器,从输入缓冲区消耗字节(或字符),将它们转换,并将生成的字符(或字节)写入输出缓冲区。编码过程由此类的实例描述,终止原因分为四类:

  • 当没有更多输入要处理时报告欠流,或者输入不足且需要额外输入时报告。此条件由唯一的结果对象UNDERFLOW表示,其isUnderflow方法返回true

  • 当输出缓冲区中剩余空间不足时报告溢出。此条件由唯一的结果对象OVERFLOW表示,其isOverflow方法返回true

  • 当输入单元序列不符合规范时报告格式错误输入。此类错误由其isMalformed方法返回true并且length方法返回格式错误序列的长度来描述。对于给定长度的所有格式错误输入,此类有一个唯一实例。

  • 当输入单元序列表示无法在输出字符集中表示的字符时报告无法映射字符错误。此类错误由其isUnmappable方法返回true并且length方法返回表示无法映射字符的输入序列的长度来描述。对于给定长度的所有无法映射字符错误,此类有一个唯一实例。

为方便起见,isError方法对描述格式错误输入和无法映射字符错误的结果对象返回true,但对描述欠流或溢出条件的结果对象返回false

自版本:
1.4
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final CoderResult
    表示溢出的结果对象,意味着输出缓冲区中空间不足。
    static final CoderResult
    表示欠流的结果对象,意味着输入缓冲区已完全消耗,或者如果输入缓冲区尚未为空,则需要额外输入。
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    告知此对象是否描述错误条件。
    boolean
    告知此对象是否描述格式错误输入。
    boolean
    告知此对象是否描述溢出条件。
    boolean
    告知此对象是否描述欠流条件。
    boolean
    告知此对象是否描述无法映射字符错误。
    int
    length()
    返回此对象描述的错误输入的长度  (可选操作)
    static CoderResult
    malformedForLength(int length)
    返回描述给定长度的格式错误输入的唯一对象的静态工厂方法。
    void
    抛出适合此对象描述的结果的异常。
    返回描述此编码器结果的字符串。
    static CoderResult
    unmappableForLength(int length)
    返回描述给定长度的无法映射字符错误的唯一结果对象的静态工厂方法。

    Methods declared in class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Field Details

    • UNDERFLOW

      public static final CoderResult UNDERFLOW
      表示欠流的结果对象,意味着输入缓冲区已完全消耗,或者如果输入缓冲区尚未为空,则需要额外输入。
    • OVERFLOW

      public static final CoderResult OVERFLOW
      表示溢出的结果对象,意味着输出缓冲区中空间不足。
  • Method Details

    • toString

      public String toString()
      返回描述此编码器结果的字符串。
      覆盖:
      toString 在类 Object
      返回:
      描述性字符串
    • isUnderflow

      public boolean isUnderflow()
      告知此对象是否描述欠流条件。
      返回:
      如果且仅如果此对象表示欠流,则返回true
    • isOverflow

      public boolean isOverflow()
      告知此对象是否描述溢出条件。
      返回:
      如果且仅如果此对象表示溢出,则返回true
    • isError

      public boolean isError()
      告知此对象是否描述错误条件。
      返回:
      如果且仅如果此对象表示格式错误输入或无法映射字符错误,则返回true
    • isMalformed

      public boolean isMalformed()
      告知此对象是否描述格式错误输入。
      返回:
      如果且仅如果此对象表示格式错误输入,则返回true
    • isUnmappable

      public boolean isUnmappable()
      告知此对象是否描述无法映射字符错误。
      返回:
      如果且仅如果此对象表示无法映射字符错误,则返回true
    • length

      public int length()
      返回此对象描述的错误输入的长度  (可选操作)
      返回:
      错误输入的长度,一个正整数
      抛出:
      UnsupportedOperationException - 如果此对象不描述错误条件,即如果isError不返回true
    • malformedForLength

      public static CoderResult malformedForLength(int length)
      返回描述给定长度的格式错误输入的唯一对象的静态工厂方法。
      参数:
      length - 给定的长度
      返回:
      请求的编码器结果对象
    • unmappableForLength

      public static CoderResult unmappableForLength(int length)
      返回描述给定长度的无法映射字符错误的唯一结果对象的静态工厂方法。
      参数:
      length - 给定的长度
      返回:
      请求的编码器结果对象
    • throwException

      public void throwException() throws CharacterCodingException
      抛出适合此对象描述的结果的异常。
      抛出:
      BufferUnderflowException - 如果此对象是UNDERFLOW
      BufferOverflowException - 如果此对象是OVERFLOW
      MalformedInputException - 如果此对象表示格式错误输入;异常的长度值将是此对象的长度
      UnmappableCharacterException - 如果此对象表示无法映射字符错误;异常的长度值将是此对象的长度
      CharacterCodingException - MalformedInputException如果此对象表示格式错误输入;UnmappableCharacterException如果此对象表示无法映射字符错误