Java Base64.Decoder.decode(ByteBuffer buffer) 方法
Java java.util.Base64.Decoder
类提供的 ByteBuffer decode(ByteBuffer buffer)
使用 Base64 编码方案解码输入字节缓冲区中的所有字节,将结果写入新分配的 ByteBuffer
( JAVA > 8 )
方法原型
public ByteBuffer decode(ByteBuffer buffer)
该方法使用 Base64 编码方案解码输入字节缓冲区中的所有字节,将结果写入新分配的 ByteBuffer 。
返回时,源缓冲区的位置将更新为其限制 ( limit ) ;它的限制不会改变。返回的输出缓冲区的位置将为零,其限制将是生成的解码字节数。
如果 src 包含了指定编码格式外的字符则会抛出异常 IllegalArgumentException
。抛出此异常时,源缓冲区的位置将是当时已经解码的位置
参数说明
参数 | 说明 |
---|---|
src | 要解码的 ByteBuffer |
返回值
一个新分配的字节缓冲区,包含解码的字节
抛出异常
异常 | 说明 |
---|---|
IllegalArgumentException | 如果 src 包含了指定编码格式外的字符则会抛出此异常 |
范例
下面的代码简单的演示了 ByteBuffer decode(ByteBuffer buffer)
的使用
Base64Tester.java
import java.util.Base64; import java.nio.ByteBuffer; import java.io.UnsupportedEncodingException; public class Base64Tester { public static void main(String args[]) { try { String encodedString = "SmF2YSA4IEJhc2U2NCDnvJbnoIHop6PnoIEgLSBKYXZhOOaWsOeJueaApyAtIOeugOWNleaVmeeoiyA="; ByteBuffer base64encoded = ByteBuffer.wrap ( encodedString.getBytes("utf-8")); ByteBuffer base64decoded = Base64.getDecoder().decode(base64encoded); System.out.println(new String(base64decoded.array(),"utf-8")); } catch(UnsupportedEncodingException e) { System.out.println("异常:" + e.getMessage()); } } }
运行以上代码,输出结果如下
[yufei@www.twle.cn helloworld]$ javac Base64Tester.java && java Base64Tester Java 8 Base64 编码解码 - Java8新特性 - 简单教程