Base64 encoding/decoding
javax.mail.internet.MimeUtility
Oftmals müssen Daten Base64 codiert werden um sie zu transportieren.
Häufig wird Base64-Kodierung beim Mailversand verwendet, daher ist die Kodierung etwas versteckt im Mail-API zu finden.
Folgende kleine Klasse soll die Verwendung demonstrieren. Im Beispiel kann ein String zu einem ByteArray und zurück kodiert werden:
public class Base64 { public String encode(byte[] ba) throws MessagingException, IOException { ByteArrayOutputStream baos = new ByteArrayOutputStream(); OutputStream os = MimeUtility.encode(baos, "Base64"); os.write(ba); os.close(); return new String(baos.toByteArray()); } public byte[] decode(String str) throws MessagingException, IOException { ByteArrayInputStream bais = new ByteArrayInputStream(str.getBytes()); InputStream is = MimeUtility.decode(bais, "Base64"); byte[] ba = new byte[str.length()]; int len = is.read(ba); byte[] ba2 = new byte[len]; System.arraycopy(ba, 0, ba2, 0, n); return ba2; } }