【java技术总结】java-8新特性:新工具

Java8 Base64

在Java 8中,Base64编码已经成为Java类库的标准。

Java 8 内置了 Base64 编码的编码器和解码器。

Base64工具类提供了一套静态方法获取下面三种BASE64编解码器:

基本:输出被映射到一组字符A-Za-z0-9+/,编码不添加任何行标,输出的解码仅支持A-Za-z0-9+/。
URL:输出映射到一组字符A-Za-z0-9+_,输出是URL和文件。
MIME:输出隐射到MIME友好格式。输出每行不超过76字符,并且使用'\r'并跟随'\n'作为分割。编码输出最后没有行分割。

Base64 实例

public static void main(String[] args) {
    try {

        // 使用基本编码
        String base64encodedString = Base64.getEncoder().encodeToString("runoob?java8".getBytes("utf-8"));
        System.out.println("Base64 编码字符串 (基本) :" + base64encodedString);
        // 解码
        byte[] base64decodedBytes = Base64.getDecoder().decode(base64encodedString);
        System.out.println("原始字符串: " + new String(base64decodedBytes, "utf-8"));

        // 使用 URL 编码
        base64encodedString = Base64.getUrlEncoder().encodeToString("runoob?java8".getBytes("utf-8"));
        System.out.println("Base64 编码字符串 (URL) :" + base64encodedString);
        base64decodedBytes = Base64.getUrlDecoder().decode(base64encodedString);
        System.out.println("Base64 解码字符串 (URL) :" + new String(base64decodedBytes, "utf-8"));


        // MIME 编码
        StringBuilder stringBuilder = new StringBuilder();
        for (int i = 0; i < 10; ++i) {
            stringBuilder.append(UUID.randomUUID().toString());
        }
        byte[] mimeBytes = stringBuilder.toString().getBytes("utf-8");
        String mimeEncodedString = Base64.getMimeEncoder().encodeToString(mimeBytes);
        System.out.println("Base64 编码字符串 (MIME) :" + mimeEncodedString);

        byte[] mimeDecodedBytes = Base64.getMimeDecoder().decode(mimeEncodedString);
        System.out.println("Base64 解码字符串 (MIME) :" + new String(mimeDecodedBytes, "utf-8"));

    }catch(UnsupportedEncodingException e){
        System.out.println("Error :" + e.getMessage());
    }
}
Base64 编码字符串 (基本) :cnVub29iP2phdmE4
原始字符串: runoob?java8
Base64 编码字符串 (URL) :cnVub29iP2phdmE4
Base64 解码字符串 (URL) :runoob?java8
Base64 编码字符串 (MIME) :OWU4NjUyZDAtYzZhYy00NjM1LWExYjYtYTM5YmU5MGEzYTNlODg4MzQ4MzAtNzMxNC00NTY2LWIy
NDItM2QxYTViMTlkZGIzNGZjZjY4MjYtMzg5My00ZDM4LWJlYWQtMDBjMWNiY2RmNWUxNjQyNzA4
ODQtYmI3ZC00NWI4LTk0ZWItYzBlOGJhMjAyZWYyNzI0MDIwY2UtNjUwNC00YmE5LWExNzEtMjY0
MTA4OTUwMDRmZjRhYWUyYzUtMmRkMC00ODdiLTk1NWQtYWU0NDFhYzYwY2IxYzAzZGRiZGQtMDMy
NC00MjE5LWEyYTUtZjk0YWU2MDYxM2Q1MmVlMTJhMjktNWRlYi00NmRhLTljM2YtZjUzNzM2ZDA2
MDY1NDZiNThkOWMtOTE2NC00ZTk0LTk0YWEtNjQyYWRjNTYxM2VhZDM3OTc3YjQtN2I1My00Nzll
LTg0NWYtZDM2N2I0OTkwZTdj
Base64 解码字符串 (MIME) :9e8652d0-c6ac-4635-a1b6-a39be90a3a3e88834830-7314-4566-b242-3d1a5b19ddb34fcf6826-3893-4d38-bead-00c1cbcdf5e164270884-bb7d-45b8-94eb-c0e8ba202ef2724020ce-6504-4ba9-a171-26410895004ff4aae2c5-2dd0-487b-955d-ae441ac60cb1c03ddbdd-0324-4219-a2a5-f94ae60613d52ee12a29-5deb-46da-9c3f-f53736d0606546b58d9c-9164-4e94-94aa-642adc5613ead37977b4-7b53-479e-845f-d367b4990e7c
posted @ 2022-11-10 10:05  求道之愚者  阅读(28)  评论(0)    收藏  举报