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.
Antworten
Zu viele Anzeigen?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));
}
}
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"));
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.
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
Es gibt Fortschritte: mail.openjdk.java.net/pipermail/core-libs-dev/2012-October/
2 Stimmen
Hier ist eine weitere Umsetzung, die ich vor kurzem durchgeführt habe: github.com/n1hility/playground/blob/master/src/main/java/org/
3 Stimmen
Wenn Sie eine Android-App entwickeln, hat Google dies bereits getan: developer.Android.com/reference/Android/util/Base64.html