當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。