538 Stimmen

Base64-Daten in Java dekodieren

Ich habe ein Bild, das Base64-kodiert ist. Wie kann ich das am besten in Java dekodieren? Hoffentlich nur mit den Bibliotheken, die in Sun Java 6 enthalten sind.

1 Stimmen

Unabhängig davon, welche Art von Anwendung Sie verwenden (Experiment oder nicht), ist es so einfach wie das Erstellen einer einzigen Base64.java-Datei in Ihrem utils-Paket mit dem Code hier: migbase64.sourceforge.net Schauen Sie sich die Leistungstabellen an und bemerken Sie den Unterschied: 4-5 mal so schnell.

0 Stimmen

ZU IHRER INFORMATION: GEP 135 schlägt vor, eine standardisierte, auffindbare API für die Java-Plattform einzuführen.

0 Stimmen

9voto

Wenn Sie eine leistungsbasierte Lösung bevorzugen, können Sie "MiGBase64" verwenden.

http://migbase64.sourceforge.net/

public class Base64Test {
    public static void main(String[] args) {
    String encodeToString = Base64.encodeToString("JavaTips.net".getBytes(), true);
    System.out.println("encodeToString " + encodeToString);
    byte[] decodedBytes = Base64.decode(encodeToString.getBytes());
    System.out.println("decodedBytes " + new String(decodedBytes));
    }
}

8voto

Ninad Pingale Punkte 6155

Java 8 verwenden -

    public static String encodeString(String plainString) {
        return  Base64.getEncoder().encodeToString(plainString.getBytes());
    }

    public static String decodeString(String encodedString) {
        byte[] bytes = Base64.getDecoder().decode(encodedString);
        return new String(bytes);
    }

5voto

Dushan Punkte 951

Versuchen Sie einfach Folgendes.

byte[] data = Base64.getDecoder().decode(base64fileContent);

Base64.getDecode() gibt einen Base64-Decoder zurück, der dekodiert werden kann. Dann müssen Sie diesen wieder dekodieren mit .decode(<your base64>) .

4voto

Buhake Sindi Punkte 85274

Dies ist eine spät Antwort, aber Joshua Bloch hat seine Base64 Klasse (als er für Sun, ähm, Oracle arbeitete) unter dem java.util.prefs Paket. Diese Klasse existiert seit JDK 1.4.

z.B.

String currentString = "Hello World";
String base64String = java.util.prefs.Base64.byteArrayToBase64(currentString.getBytes("UTF-8"));

3voto

diyism Punkte 11786

Ich hoffe, das hilft Ihnen:

import com.sun.org.apache.xml.internal.security.utils.Base64;
String str="Hello World";
String base64_str=Base64.encode(str.getBytes("UTF-8"));

Oder:

String str="Hello World";
String base64_str="";
try
   {base64_str=(String)Class.forName("java.util.prefs.Base64").getDeclaredMethod("byteArrayToBase64", new Class[]{byte[].class}).invoke(null, new Object[]{str.getBytes("UTF-8")});
   }
catch (Exception ee) {}

java.util.prefs.Base64 arbeitet auf lokaler Ebene rt.jar ,

Aber es ist nicht in Die Weiße Liste der JRE-Klasse

und nicht in Verfügbare Klassen, die nicht in der GAE/J White-List aufgeführt sind

Wie schade!

PS. Bei Android ist es einfach, weil das android.util.Base64 ist seit Android API Level 8 enthalten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X