CharsetEncoder malformedInputAction() method in Java with Examples

2025 年 5 月 8 日 | 阅读 3 分钟

java.nio.charset.CharsetEncoder 的内置方法之一是 malformedInputAction()。对于格式错误的输入问题,CharsetEncoder 会返回此编码器的当前操作。返回的三种 CodingErrorAction 类型是 IGNORE(忽略)、REPLACE(替换)和 REPORT(报告)。不符合所使用字符集预期格式的字符被称为格式错误的输入。

方法返回一个 CodingErrorAction 对象,该对象指定了对输入错误的容错行为。当编码器遇到格式错误的输入时,它可以选择 REPORT(在这种情况下会抛出异常)或 REPLACE(在这种情况下会将格式错误的字符替换为默认的替换序列)。在处理错误字节序列时,malformedInputAction() 方法有助于控制如何处理编码错误。

语法

参数:上述方法不接受任何参数。

返回值:函数返回当前的格式错误输入操作,该操作永远不会为空。

示例 1

下面的代码演示了如何使用 CharsetEncoder 类来检索当前的 CodingErrorAction,以处理字符编码过程中的错误输入。对于 UTF-8 字符集,使用 newEncoder() 方法创建 CharsetEncoder 对象。调用编码器的 malformedInputAction() 方法会产生编码器在遇到错误输入时将执行的当前操作。然后,此操作作为 CodingErrorAction 对象报告到控制台。此代码的目的是验证并展示编码器在处理错误输入时的默认操作。

实施

输出

 
The current malformed-input action is REPORT   

示例 2

该代码说明了如何使用 CharsetEncoder 来检查处理无效输入的当前 CodingErrorAction。使用 newEncoder() 函数为 US-ASCII 字符集创建了一个 CharsetEncoder 实例。为了在编码过程中管理格式错误的输入序列,通过调用 encoder 的 malformedInputAction() 方法来检索编码器的当前操作。输出结果是一个 CodingErrorAction 对象,它指定了行为(例如,忽略、替换或报告问题)。此代码的目标是观察编码器的默认格式错误输入处理方法。

实施

输出

 
The current malformed-input action is REPORT   

示例 3

提供的代码展示了如何在 CharsetEncoder 实例中配置和查询错误输入的处理。CharsetEncoder 被设置为 US-ASCII 字符集,该字符集只允许编码少量字符。通过 onMalformedInput(CodingErrorAction.IGNORE) 方法将操作设置为忽略格式错误的输入序列,确保在编码过程中跳过它们而不会引发异常。最后,通过 malformedInputAction() 方法检索当前配置的操作,该操作显示为 IGNORE。这演示了编码错误的某种处理方式。

实施

输出

 
The current malformed-input action is IGNORE   

下一主题Java Pi