Java8 Base64

Java 8 新特性Nouveautés de Java 8


Dans Java 8, l'encodage Base64 est devenu la norme dans la bibliothèque de classes Java.

Java 8 dispose d’encodeurs et de décodeurs Base64 intégrés.

La classe utilitaire Base64 fournit un ensemble de méthodes statiques permettant d’obtenir les trois types suivants d’encodeurs/décodeurs BASE64 :

  • Basique :La sortie est mappée à un ensemble de caractères A-Za-z0-9+/, l’encodage n’ajoute aucun saut de ligne, et le décodage de la sortie ne prend en charge que les caractères A-Za-z0-9+/.
  • URL :La sortie est mappée à un ensemble de caractères A-Za-z0-9+_, et la sortie est sûre pour les URL et les noms de fichiers.
  • MIME :La sortie est mappée à un format compatible MIME. Chaque ligne de sortie ne dépasse pas 76 caractères et utilise '\r' suivi de '\n' comme séparateur. La sortie encodée n’a pas de séparateur de ligne à la fin.

Classes imbriquées

Non. Classe imbriquée et description
1 classe statique Base64.Decoder

Cette classe implémente un décodeur pour décoder des données d’octets en utilisant l’encodage Base64.

2 classe statique Base64.Encoder

Cette classe implémente un encodeur pour encoder des données d’octets en utilisant l’encodage Base64.

Méthodes

Non. Nom de méthode et description
1 static Base64.Decoder getDecoder()

Renvoie un Base64.Decoder qui décode en utilisant le schéma d'encodage Base64 de base.

2 static Base64.Encoder getEncoder()

Renvoie un Base64.Encoder qui encode en utilisant le schéma d'encodage Base64 de base.

3 static Base64.Decoder getMimeDecoder()

Renvoie un Base64.Decoder qui décode en utilisant le schéma d'encodage Base64 de type MIME.

4

static Base64.Encoder getMimeEncoder()

Renvoie un Base64.Encoder qui encode en utilisant le schéma d'encodage Base64 de type MIME.

5 static Base64.Encoder getMimeEncoder(int lineLength, byte[] lineSeparator)

Renvoie un Base64.Encoder qui encode en utilisant le schéma d'encodage Base64 de type MIME, et la longueur de ligne et le séparateur de ligne peuvent être spécifiés via des paramètres.

6 static Base64.Decoder getUrlDecoder()

Renvoie un Base64.Decoder qui décode en utilisant le schéma d'encodage Base64 sûr pour les URL et les noms de fichiers.

7 static Base64.Encoder getUrlEncoder()

Renvoie un Base64.Encoder qui encode selon le schéma d'encodage Base64 sûr pour les URL et les noms de fichiers.

Remarque :De nombreuses méthodes de la classe Base64 sont héritées dejava.lang.Objectla classe.


Exemple Base64

L'exemple suivant montre l'utilisation de Base64 :

Fichier Java8Tester.java

import java.util.Base64; import java.util.UUID; import java.io.UnsupportedEncodingException; public class Java8Tester { public static void main(String args[]){ try { //Utilisation de l'encodage de base String base64encodedString = Base64.getEncoder().encodeToString("example?java8".getBytes("utf-8")); System.out.println("Chaîne encodée en Base64 (Basic) :" + base64encodedString); //Décoder byte[] base64decodedBytes = Base64.getDecoder().decode(base64encodedString); System.out.println("Chaîne originale :" + new String(base64decodedBytes, "utf-8")); base64encodedString = Base64.getUrlEncoder().encodeToString("example?java8".getBytes("utf-8")); System.out.println("Chaîne encodée en Base64 (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("Chaîne encodée en Base64 (MIME) :" + mimeEncodedString); }catch(UnsupportedEncodingException e){ System.out.println("Erreur :" + e.getMessage()); } } }

En exécutant le script ci-dessus, la sortie est :

$ javac Java8Tester.java 
$ java Java8Tester
原始字符串: example?java8
Base64 编码字符串 (URL) :VHV0b3JpYWxzUG9pbnQ_amF2YTg=
Base64 编码字符串 (MIME) :M2Q4YmUxMTEtYWRkZi00NzBlLTgyZDgtN2MwNjgzOGY2NGFlOTQ3NDYyMWEtZDM4ZS00YWVhLTkz
OTYtY2ZjMzZiMzFhNmZmOGJmOGI2OTYtMzkxZi00OTJiLWEyMTQtMjgwN2RjOGI0MTBmZWUwMGNk
NTktY2ZiZS00MTMxLTgzODctNDRjMjFkYmZmNGM4Njg1NDc3OGItNzNlMC00ZWM4LTgxNzAtNjY3
NTgyMGY3YzVhZWQyMmNiZGItOTIwZi00NGUzLTlkMjAtOTkzZTI1MjUwMDU5ZjdkYjg2M2UtZTJm
YS00Y2Y2LWIwNDYtNWQ2MGRiOWQyZjFiMzJhMzYxOWQtNDE0ZS00MmRiLTk3NDgtNmM4NTczYjMx
ZDIzNGRhOWU4NDAtNTBiMi00ZmE2LWE0M2ItZjU3MWFiNTI2NmQ2NTlmMTFmZjctYjg1NC00NmE1
LWEzMWItYjk3MmEwZTYyNTdk

Java 8 新特性Nouveautés de Java 8

Autres extensions