鍍金池/ 教程/ Java/ Java8 Base64
Java8數(shù)據(jù)流
Java8默認(rèn)方法
Java8 Optional類
Java8 Base64
Java8期間及持續(xù)時(shí)間
Java8函數(shù)式接口
Java8 日期時(shí)間API
Java8 本地DateTime API
Java8教程
Java8 Lambda表達(dá)式
Java8環(huán)境設(shè)置
Java8向后兼容
Java8 時(shí)間調(diào)節(jié)器
Java8 ChronoUnits枚舉
Java8方法引用
Java8 Nashorn JavaScript引擎
Java8 時(shí)區(qū)DateTime API

Java8 Base64

使用 Java8,Base64終于得到了在Java整合。 Java8現(xiàn)在有內(nèi)置編碼器和解碼器的Base64編碼。在Java8中,我們可以使用三種類型的Base64編碼。

  • 簡(jiǎn)單 - 輸出映射設(shè)置字符在A-ZA-Z0-9+/。編碼器不添加任何換行輸出和解碼器拒絕在A-Za-z0-9+/以外的任何字符。

  • URL - 輸出映射設(shè)置字符在A-Za-z0-9+_。輸出URL和文件名安全。

  • MIME - 輸出映射到MIME友好的格式。輸出表示在每次不超過76個(gè)字符行和使用'\r'后跟一個(gè)換行符'\n'回車作為行分隔符。無行隔板的存在是為了使編碼的結(jié)束輸出。

Nested 類

S.N. Nested 類 & 描述
1 static class Base64.Decoder
這個(gè)類實(shí)現(xiàn)了一個(gè)解碼器使用的Base64編碼方案解碼字節(jié)的數(shù)據(jù),在RFC4648和RFC2045規(guī)定。
2 static class Base64.Encoder
這個(gè)類實(shí)現(xiàn)一個(gè)編碼器使用的Base64編碼方案編碼字節(jié)數(shù)據(jù)在RFC4648和RFC2045規(guī)定。

方法

S.N. 方法名稱 & 描述
1 static Base64.Decoder getDecoder()
返回Base64.Decoder解碼使用基本型base64編碼方案。
2 static Base64.Encoder getEncoder()
返回Base64.Encoder編碼使用的基本型base64編碼方案。
3 static Base64.Decoder getMimeDecoder()
返回Base64.Decoder解碼使用MIME類型的base64解碼方案。
4 static Base64.Encoder getMimeEncoder()
返回Base64.Encoder編碼使用MIME類型base64編碼方案。
5 static Base64.Encoder getMimeEncoder(int lineLength, byte[] lineSeparator)
返回Base64.Encoder編碼使用指定的行長(zhǎng)度和線分隔的MIME類型base64編碼方案。
6 static Base64.Decoder getUrlDecoder()
返回Base64.Decoder解碼使用URL和文件名安全型base64編碼方案。
7 static Base64.Encoder getUrlEncoder()
返回Base64.Decoder解碼使用URL和文件名安全型base64編碼方案。...

方法繼承

這個(gè)類從以下類繼承的方法:

  • java.lang.Object

Base64 例子

選擇使用任何編輯器創(chuàng)建以下java程序在 C:/> JAVA

Java8Tester.java
import java.util.Base64;
import java.util.UUID;
import java.io.UnsupportedEncodingException;

public class HelloWorld {

   public static void main(String args[]){
      try {
         // Encode using basic encoder
         String base64encodedString = Base64.getEncoder().encodeToString("YiiBai?java8".getBytes("utf-8"));
         System.out.println("Base64 Encoded String (Basic) :" + base64encodedString);

         // Decode
         byte[] base64decodedBytes = Base64.getDecoder().decode(base64encodedString);
         System.out.println("Original String: "+new String(base64decodedBytes, "utf-8"));

         base64encodedString = Base64.getUrlEncoder().encodeToString("YiiBai?java8".getBytes("utf-8"));
         System.out.println("Base64 Encoded String (URL) :" + base64encodedString);

         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 Encoded String (MIME) :"+mimeEncodedString);
      }catch(UnsupportedEncodingException e){
         System.out.println("Error :"+e.getMessage());
      }
   }
}

驗(yàn)證結(jié)果

使用javac編譯如下編譯類

C:\JAVA>javac Java8Tester.java

現(xiàn)在運(yùn)行Java8Tester看到的結(jié)果

C:\JAVA>java Java8Tester

看到結(jié)果

Base64 Encoded String (Basic) :VHV0b3JpYWxzUG9pbnQ/amF2YTg=              
Original String: YiiBai?java8                                    
Base64 Encoded String (URL) :VHV0b3JpYWxzUG9pbnQ_amF2YTg=                
Base64 Encoded String (MIME) :ZWJjY2YzZWUtYmUwZC00Yjg1LTlkYjUtNWUyMzBlNWI
4ZGQ4ZjE1NGJmMjEtNTdkNi00YzM1LTg4                                        
MzYtNDZlYzNhZDM2NTdkZmQzY2RiNzMtMTU1OC00ZjBmLWFmZGQtM2YyZWU3MDYzZjQwNzVhY
WQ0                                                                      
ODctZWEyZS00YzM2LWEyZmUtOGVkMmNjMGNmZGM3MTg5YWUyZGQtMzg4MS00M2NkLWI2NDEtZ
jNh                                                                      
Zjk2OGIxZDU2YzkzODZlYTUtNjljNC00ZmIyLTkzYTQtMzVlOTFlNjdlY2E0MDcwNWExMWItM
mE4                                                                      
Yy00OTljLTg2NmItMjE3ZTZmMmIyY2NiNzI2MjAwZWQtMjI0NC00YzJhLWJiMGItOTczMDJkM
zIx                                                                      
NGFkY2QyZmVhODItNmUyOS00MWNjLWFlODItNzdmNzRhYmQ4NGU5ZGQ3ZjY3NzktZjgwYi00M
zlk                                                                      
LTlmNDgtOTNlNTIwYzIzZDcy