M
Michael-O
Gast
Hallo,
habe mir mal aus Lust und Laune ein Programm geschrieben, welches Dateien von und nach Base64 transferriert.
Das Komische ist, mit plaintext funzt es, aber mit binaries funzt es nicht. Das Ergebnis ist gleich groß wie die Quelle, aber die Datei ist nicht lesbar.
Vllt sieht jemand von euch den Fehler in meinem Code
danke!
habe mir mal aus Lust und Laune ein Programm geschrieben, welches Dateien von und nach Base64 transferriert.
Das Komische ist, mit plaintext funzt es, aber mit binaries funzt es nicht. Das Ergebnis ist gleich groß wie die Quelle, aber die Datei ist nicht lesbar.
Vllt sieht jemand von euch den Fehler in meinem Code
danke!
Code:
import java.io.BufferedReader;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
public class Base64Transfer {
public static void createBase64File(String filename) throws Exception {
BufferedReader bf = new BufferedReader(new FileReader(filename));
FileWriter fw = new FileWriter(filename+".base64");
StringBuffer sb = new StringBuffer();
while(bf.ready())
sb.append((char) bf.read());
bf.close();
byte[] toEncode = sb.toString().getBytes();
String base64Encoded = new sun.misc.BASE64Encoder().encode(toEncode);
//System.out.println(base64Encoded);
fw.write(base64Encoded);
fw.flush();
fw.close();
}
public static void createPlainFile(String filename) throws Exception {
BufferedReader bf = new BufferedReader(new FileReader(filename));
StringBuffer sb = new StringBuffer();
while(bf.ready())
sb.append((char) bf.read());
bf.close();
//System.out.println(sb.toString());
byte[] base64Decoded = new sun.misc.BASE64Decoder().decodeBuffer(sb.toString());
FileOutputStream fos = new FileOutputStream(filename+".plain");
fos.write(base64Decoded);
fos.close();
}
public static void main(String[] args) throws Exception {
createBase64File(args[0]);
createPlainFile(args[0]+".base64");
}
}