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]
異常程序無法在程序中演示。
相關用法
- Java CharsetEncoder unmappableCharacterAction()用法及代碼示例
- Java CharsetEncoder reset()用法及代碼示例
- Java CharsetEncoder isLegalReplacement()用法及代碼示例
- Java CharsetEncoder maxBytesPerChar()用法及代碼示例
- Java CharsetEncoder charset()用法及代碼示例
- Java CharsetEncoder averageBytesPerChar()用法及代碼示例
- Java CharsetEncoder malformedInputAction()用法及代碼示例
- Java CharsetEncoder replacement()用法及代碼示例
- Java Java lang.Long.reverse()用法及代碼示例
- Java Java.util.Collections.disjoint()用法及代碼示例
- Java Java lang.Long.builtcount()用法及代碼示例
- Java Java.util.Collections.rotate()用法及代碼示例
- Java Java lang.Long.byteValue()用法及代碼示例
- Java Java lang.Long.lowestOneBit()用法及代碼示例
注:本文由純淨天空篩選整理自gopaldave大神的英文原創作品 CharsetEncoder encode(CharBuffer in) method in Java with Examples。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。