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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。