Java Base64.Encoder.encode(byte[] src, byte[] dst) 方法
Java java.util.Base64.Encoder
类提供的 encode(byte[] src, byte[] dst)
方法使用 Base64 编码方案对指定字节数组中的所有字节进行编码,并将结果字节写入给定的输出字节数组。
( Java > 8 )
方法原型
public int encode(byte[] src, byte[] dst)
该方法使用 Base64 编码方案对指定字节数组中的所有字节进行编码,并将结果字节写入给定的输出字节数组。
输入和输出都是从偏移量 0
开始。
调用此方法需要确保输出字节数组 dst
有足够的空间来解码输入字节数组中的所有字节。如果输出字节数组不够大,则不会将任何字节写入输出字节数组
因为使用 Base64 编码后的数据可能是原来数据的 4-8 倍,所以申请的 byte[] 长度大概是原数据的长度的 8 倍即可。
参数说明
参数 | 说明 |
---|---|
src | 要编码的字节数组 |
dst | 保存编码后数据的字节数组 |
返回值
返回写入到 dst
字节数组中的字节长度。
异常
异常 | 说明 |
---|---|
IllegalArgumentException | 如果输出字节数组 dst 没有足够的空间,那么会抛出此异常。 |
范例
下面的代码简单的演示了 byte[] encode(byte[] src)
的使用
Base64Tester.java
import java.util.Base64; import java.io.UnsupportedEncodingException; public class Base64Tester { public static void main(String args[]) { try { byte[] raw= "Java 8 Base64 编码解码 - Java8新特性 - 简单教程".getBytes("utf-8"); byte[] base64encoded = new byte[raw.length * 8]; Base64.getEncoder().encode(raw,base64encoded); System.out.println(new String(base64encoded,"utf-8")); } catch(UnsupportedEncodingException e) { System.out.println("异常:" + e.getMessage()); } } }
运行以上代码,输出结果如下
[yufei@www.twle.cn helloworld]$ javac Base64Tester.java && java Base64Tester SmF2YSA4IEJhc2U2NCDnvJbnoIHop6PnoIEgLSBKYXZhOOaWsOeJueaApyAtIOeugOWNleaVmeeoiw==