Java 8 Base64 : Encodage Simple, URL et MIME simplifié
Java 8 intègre enfin un encodeur/décodeur Base64 natif. Trois variantes sont disponibles :
Simple (Basic) : Alphabet A-Za-z0-9+/. Pas de saut de ligne, rejette tout autre caractère.
URL : Alphabet A-Za-z0-9+_ (tiret bas). Sécurisé pour URLs et noms de fichiers.
MIME : Format MIME avec lignes ≤ 76 caractères, séparées par CRLF (\r\n). Pas de séparateur à la fin.
Classes imbriquées
| N° | Classe imbriquée & Description |
|---|---|
| 1 | static class Base64.Decoder Décodeur Base64 selon RFC 4648 et RFC 2045. |
| 2 | static class Base64.Encoder Encodeur Base64 selon RFC 4648 et RFC 2045. |
Méthodes statiques principales
| N° | Méthode & Description |
|---|---|
| 1 | static Base64.Decoder getDecoder() Décodeur Basic. |
| 2 | static Base64.Encoder getEncoder() Encodeur Basic. |
| 3 | static Base64.Decoder getMimeDecoder() Décodeur MIME. |
| 4 | static Base64.Encoder getMimeEncoder() Encodeur MIME (76 chars/ligne, CRLF). |
| 5 | static Base64.Encoder getMimeEncoder(int lineLength, byte[] lineSeparator) Encodeur MIME personnalisé. |
| 6 | static Base64.Decoder getUrlDecoder() Décodeur URL/Filename safe. |
| 7 | static Base64.Encoder getUrlEncoder() Encodeur URL/Filename safe. |
Hérite de java.lang.Object.
Exemple complet
Java8Tester.java
import java.util.Base64;
import java.util.UUID;
import java.io.UnsupportedEncodingException;
public class HelloWorld {
public static void main(String args[]) {
try {
// Encodage Basic
String base64encodedString = Base64.getEncoder().encodeToString(
"TutorialsPoint?java8".getBytes("utf-8"));
System.out.println("Base64 Encodé (Basic) : " + base64encodedString);
// Décodage
byte[] base64decodedBytes = Base64.getDecoder().decode(base64encodedString);
System.out.println("Chaîne originale : " + new String(base64decodedBytes, "utf-8"));
// Encodage URL
base64encodedString = Base64.getUrlEncoder().encodeToString(
"TutorialsPoint?java8".getBytes("utf-8"));
System.out.println("Base64 Encodé (URL) : " + base64encodedString);
// Encodage MIME (longue chaîne)
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 Encodé (MIME) : " + mimeEncodedString);
} catch (UnsupportedEncodingException e) {
System.out.println("Erreur : " + e.getMessage());
}
}
}
Vérification
C:\JAVA>javac Java8Tester.java C:\JAVA>java Java8Tester
Sortie
Base64 Encodé (Basic) : VHV0b3JpYWxzUG9pbnQ/amF2YTg= Chaîne originale : TutorialsPoint?java8 Base64 Encodé (URL) : VHV0b3JpYWxzUG9pbnQ_amF2YTg= Base64 Encodé (MIME) : YmU3NWY2ODktNGM5YS00ODlmLWI2MTUtZTVkOTk2YzQ1Njk1Y2EwZTg2OTEtMmRiZC00YTQ1LWJl NTctMTI1MWUwMTk0ZWQyNDE0NDAwYjgtYTYxOS00NDY5LTllYTctNjc1YzE3YWJhZTk1MTQ2MDQz NDItOTAyOC00ZWI0LThlOTYtZWU5YzcwNWQyYzVhMTQxMWRjYTMtY2MwNi00MzU0LTg0MTgtNGQ1 MDkwYjdiMzg2ZTY0OWU5MmUtZmNkYS00YWEwLTg0MjQtYThiOTQxNDQ2YzhhNTVhYWExZjItNjU2 Mi00YmM4LTk2ZGYtMDE4YmY5ZDZhMjkwMzM3MWUzNDMtMmQ3MS00MDczLWI0Y2UtMTQxODE0MGU5 YjdmYTVlODUxYzItN2NmOS00N2UyLWIyODQtMThlMWVkYTY4M2Q1YjE3YTMyYmItZjllMS00MTFk LWJiM2UtM2JhYzUxYzI5OWI4
Java
- Maîtriser les opérateurs Java : Types, syntaxe et exemples pratiques
- Commentaires Java : Types, utilisation et bonnes pratiques
- Maîtriser la boucle for améliorée en Java : Syntaxe, exemples et bonnes pratiques
- Maîtriser les chaînes de caractères en Java : Création, méthodes et bonnes pratiques
- Maîtriser les interfaces Java : concepts, implémentation et bonnes pratiques
- Maîtriser les classes internes anonymes en Java : définition, syntaxe et exemples pratiques
- Maîtriser le try-with-resources Java : gestion automatique des ressources expliquée
- Annotations Java expliquées : types, placement et exemples pratiques
- Assertions Java : guide pratique pour détecter les bugs et assurer la fiabilité du code