BASE64 encoding von Binärdaten

chris80

Mitglied
Hallo zusammen,

habe hier schon im Forum einen Beitrag gefunden der in etwa das Problem beschreibt was ich habe, dennoch kann ich mit der angeblichen Lösung dort nichts anfangen.

Hintergrund: Ziel ist es ein JPG-File BASE64 zu kodieren um es danach per email als Attachment übertragen zu können.

Die BASE64 codierung macht jetzt das Problem. Die Ergebniss-File ist genau so groß wie die Quell-Datei, trotzdem kann diese nicht angeziegt werden.

Was mache ich falsch?
Vielleicht kann mir jemand helfen.. wäre sehr nett.

Hier mein Code:
Java:
java.io.File file=new java.io.File("c:/audio.jpg");
java.io.FileInputStream stream = new java.io.FileInputStream(file);
java.io.DataInputStream in = new java.io.DataInputStream(stream);

int numberBytes = stream.available();
byte bytes[] = new byte[numberBytes];

String bla = new sun.misc.BASE64Encoder().encode(bytes);
out.println(bla);

stream.close();
 

faetzminator

Gesperrter Benutzer
Hintergrund: Ziel ist es ein JPG-File BASE64 zu kodieren um es danach per email als Attachment übertragen zu können.

Na wenn du das Bild Base64 encodierst, dann kannst du das wunderbar per Mail versenden. Aber irgendwie muss dieses wieder decodiert werden.

Des Weiteren kann ich mir fast nicht vorstellen, dass die encodierte Version gleich gross ist wie die binäre...
 

HoaX

Top Contributor
Außerdem würde ich mich nicht darauf verlassen dass FileInputStream#available() die größe der Datei liefert, nutz lieber die übliche Schleife und zum Speichern der Bytes eine ByteArrayOutputStream.
Ebenso würde ich keine Klassen aus sun.misc verweden. Apache-Codecs hat sicherlich auch einen Base64-En/Decoder.
 

chris80

Mitglied
Ein weiterer Hintergrund ist das der JavaCode in einer *isml-datei steht (InterShop Markup Language, eine Art html-datei) Das Produkt was ich dabei verwende ist enfinity, ist sehr speziell kennt vllt. nicht jeder, jedenfalls kann ich da java-Code einbauen und mit dem Befehl
Code:
out.println(bla)
;
wird schon in die Datei geschrieben.

Aber irgendwie muss dieses wieder decodiert werden.
Die Frage ist wann ich mit dem Decodieren beginnen soll, ich codiere das ganze zeug, dann schick ich das mit
out.print(bla) weg und schon hab ich ein attachment generiert (die erforderlichen Content-type Angaben vorausgesezt.).
wann soll ich also decodieren?

Des Weiteren kann ich mir fast nicht vorstellen, dass die encodierte Version gleich gross ist wie die binäre...
Ohne Witz die Quelle ist genauso groß Wie das Ziel das stimmt bis aufs letzte Byte genau.
 

Wildcard

Top Contributor
wann soll ich also decodieren?
Dann wenn aus dem Base64 wieder etwas binäres werden soll, also bevor du es anzeigst.
Der Encoder den du verwendest ist übrigens proprietäre Sun (jetzt Oracle) API. Den solltest du keinesfalls verwenden.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Problem mit Base64 Encoding Allgemeine Java-Themen 2
S [Base64] Encoding von String nicht korrekt Allgemeine Java-Themen 5
A Interpreter-Fehler OutOfMemory Exception mit Base64 decode Allgemeine Java-Themen 3
Airwolf89 Base64 Codierung Allgemeine Java-Themen 7
P MD5 und Base64 Allgemeine Java-Themen 3
J Base64 Kodierung liefert korrupte Dateien Allgemeine Java-Themen 3
S BASE64 DECODIERUNG Allgemeine Java-Themen 6
M Base64 und Steuerzeichen in Java Allgemeine Java-Themen 3
S String Encoding Verständnisproblem Allgemeine Java-Themen 22
X Encoding in Tomcat Allgemeine Java-Themen 2
B Input/Output Encoding ISO->UTF8 Allgemeine Java-Themen 3
Thallius Merkwürdiges StringBuilder verhalten (Char Encoding) Allgemeine Java-Themen 6
M Verschlüsselung von Text und Files durch RSA (Encoding Problem) Allgemeine Java-Themen 7
S Falsches Encoding bei Drag and Drop von Umlauten Allgemeine Java-Themen 16
M Datei wird nicht vollständig geschrieben (FileOutputStream, OutputStreamWriter, Encoding) Allgemeine Java-Themen 6
C Encoding Problem Windows Allgemeine Java-Themen 9
R Encoding FileWriter Allgemeine Java-Themen 1
C Encoding problem Allgemeine Java-Themen 22
M Charset Encoding für Dateinamen Allgemeine Java-Themen 4
I Encoding Problem bei exec und Windows Allgemeine Java-Themen 2
S Encoding-Problem (?) Allgemeine Java-Themen 5
lumo encoding einer text-datei Allgemeine Java-Themen 2
Y CSV Encoding Problem Allgemeine Java-Themen 6
A bufferedReader readline, encoding Allgemeine Java-Themen 5
N Encoding Unicode Textfile Allgemeine Java-Themen 5
S File encoding feststellen Allgemeine Java-Themen 4
S Bestes Text file encoding..? Allgemeine Java-Themen 36
P Textfiles laden - egal welches Encoding Allgemeine Java-Themen 9
J Encoding und Gewinnung von Zeichen aus der Hexa-Darstellung Allgemeine Java-Themen 6
P Textfile Encoding herausfinden Allgemeine Java-Themen 2
P Encoding-Probleme bei Properties-Dateien Allgemeine Java-Themen 5
R Encoding Allgemeine Java-Themen 10
B platform's default character encoding? Allgemeine Java-Themen 10
N Mal wieder char-encoding Probleme Allgemeine Java-Themen 5
M Encoding automatisch erkennen Allgemeine Java-Themen 4
M Standart Encoding des OS ermiteln Allgemeine Java-Themen 4
byte String Encoding Allgemeine Java-Themen 9
S File Encoding im Programm setzen? Allgemeine Java-Themen 3
E CSV mit Text und Binärdaten auslesen Allgemeine Java-Themen 7
R Java verstümmelt Binärdaten? Allgemeine Java-Themen 10
J Probleme mit Binärdaten Allgemeine Java-Themen 7

Ähnliche Java Themen

Neue Themen


Oben