How to decode base64 string and convert it into PDF/JPG and save it in storage

Edoardo Goffredo picture Edoardo Goffredo · Apr 12, 2016 · Viewed 49.7k times · Source

I would like to decode a base64 string and turn it into a file (as PDF/JPG) and save it to device, how for example in (/storage/emulated/0/Download/file.pdf).

For encode a file I use this code:

File originalFile = new File("/mnt/sdcard/download/file.pdf");
    String encodedBase64 = null;
    try {
        FileInputStream fileInputStreamReader = new FileInputStream(originalFile);
        byte[] bytes = new byte[(int) originalFile.length()];
        fileInputStreamReader.read(bytes);
        encodedBase64=Base64.encodeToString(bytes,Base64.NO_WRAP);
        messaggio=encodedBase64.toString();
        //encodedBase64 = new String(Base64.encode(bytes));
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

Now, I would like to decode this base64 string and convert it into a file and save it on the device.

Answer

Prerak Sola picture Prerak Sola · Apr 12, 2016

You can try this:

FileOutputStream fos = new FileOutputStream(filepath);
fos.write(Base64.decode(base64String, Base64.NO_WRAP));
fos.close();

Where:

  • filepath: Path to the new file
  • base64String: Your base64 string that you want to convert