当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java CharsetEncoder encode(CharBuffer in)用法及代码示例


encode(CharBuffer input)方法是java.nio.charset.CharsetEncoder的内置方法,该方法将单个输入字符缓冲区的剩余内容编码为newly-allocated byte-buffer。它的leaf中的encode()方法实现了整个编码操作。如果正在进行操作,则不应调用此函数。

用法

public final ByteBuffer encode(CharBuffer input)

参数:该函数接受指定输入字符缓冲区的强制参数输入。


返回值:该函数返回一个newly-allocated字节缓冲区,其中包含编码操作的结果。

错误和异常:该函数引发四个异常,如下所示:

  • IllegalStateException:如果已经在进行编码操作,则抛出该错误。
  • 格式错误的输入异常:如果从输入缓冲区的当前位置开始的字符序列不是合法的16位Unicode序列,并且当前的malformed-input操作为CodingErrorAction.REPORT,则抛出该错误。
  • UnmappableCharacterException:如果无法将从输入缓冲区的当前位置开始的字符序列映射到等效的字节序列,并且当前的unmappable-character操作为CodingErrorAction.REPORT,则会抛出该错误:
  • CharacterCodingException

下面是上述函数的实现:

程序1:

// Java program to implement 
// the above function 
import java.nio.CharBuffer; 
import java.nio.charset.Charset; 
import java.nio.charset.CharsetEncoder; 
  
public class Main { 
    public static void main(String[] args) throws Exception 
    { 
  
        // Gets the new encoder 
        CharsetEncoder encoder = Charset.forName("UTF8").newEncoder(); 
  
        // Encodes 
        String res = "gfggfg"; 
        System.out.println(encoder.encode(CharBuffer.wrap(res))); 
    } 
}
输出:
java.nio.HeapByteBuffer[pos=0 lim=6 cap=6]

程序2:

// Java program to implement 
// the above function 
import java.nio.CharBuffer; 
import java.nio.charset.Charset; 
import java.nio.charset.CharsetEncoder; 
  
public class Main { 
    public static void main(String[] args) throws Exception 
    { 
  
        // Gets the new encoder 
        CharsetEncoder encoder = Charset.forName("UTF16").newEncoder(); 
  
        // Encodes 
        String res = "gopal"; 
        System.out.println(encoder.encode(CharBuffer.wrap(res))); 
    } 
}
输出:
java.nio.HeapByteBuffer[pos=0 lim=12 cap=21]

异常程序无法在程序中演示。

参考: https://docs.oracle.com/javase/10/docs/api/java/nio/charset/CharsetEncoder.html#encode(java.nio.CharBuffer)



相关用法


注:本文由纯净天空筛选整理自gopaldave大神的英文原创作品 CharsetEncoder encode(CharBuffer in) method in Java with Examples。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。